home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / short11.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  122KB  |  6,680 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:E_DEBUG.compound*/
  10. T0*oBC11run_control=NULL;
  11. /*No:E_DEBUG.start_position*/
  12.  
  13.  
  14. T0* r208add_comment(T208* C,T0* a1){
  15. T0* R=NULL;
  16. /*[IF*/
  17. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  18. R=(T0*)C;
  19. }
  20.  else {/*AT*//*[IF*/
  21. if((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(1)){
  22. R=(T0*)C;
  23. }
  24. else{
  25. {T213*n=malloc(sizeof(*n));
  26. *n=M213;
  27. r213make(n,(T0*)C,a1);
  28. R=(T0*)n;
  29. }
  30. }
  31. /*FI]*/
  32. }
  33. /*FI]*/
  34. return R;
  35. }
  36.  
  37.  
  38. T0* r208to_runnable(T208* C,T0* a1){
  39. T0* R=NULL;
  40. /*[IF*/
  41. if(((C)->_current_type/*16*/)==((void*)(NULL))){
  42. C->_current_type=a1;
  43. /*[IF*/
  44. if(r73debug_check((T73*)(oBC11run_control))){
  45. /*[IF*/
  46. if(((C)->_compound/*12*/)!=((void*)(NULL))){
  47. C->_compound=r204to_runnable((T204*)((C)->_compound/*12*/),a1);
  48. }
  49. /*FI]*/
  50. }
  51. /*FI]*/
  52. R=(T0*)C;
  53. }
  54. else{
  55. {T208*n=malloc(sizeof(*n));
  56. *n=M208;
  57. r208make(n,(C)->_start_position/*4*/,(C)->_list/*8*/,(C)->_compound/*12*/);
  58. R=(T0*)n;
  59. }
  60. R=r208to_runnable(((T208*)R),a1);
  61. }
  62. /*FI]*/
  63. return R;
  64. }
  65. /*No:E_DEBUG.current_type*/
  66. /*No:E_DEBUG.end_mark_comment*/
  67.  
  68.  
  69. void r208make(T208* C,T0* a1,T0* a2,T0* a3){
  70. C->_start_position=a1;
  71. C->_list=a2;
  72. C->_compound=a3;
  73. }
  74. /*No:E_DEBUG.list*/
  75. /*No:CST_ATT_INTEGER.base_class*/
  76. /*No:CST_ATT_INTEGER.value_mem*/
  77.  
  78.  
  79. T0* r201start_position(T201* C){
  80. T0* R=NULL;
  81. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  82. return R;
  83. }
  84.  
  85.  
  86. T6 r201is_merge_with(T201* C,T0* a1,T0* a2){
  87. T6 R=0;
  88. R=1;
  89. /*[IF*/
  90. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  91. /*[IF*/
  92. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  93. R=0;
  94. }
  95. /*FI]*/
  96. }
  97. /*FI]*/
  98. /*[IF*/
  99. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  100. /*[IF*/
  101. {/*AT*/R=0;
  102. }
  103. /*FI]*/
  104. }
  105. /*FI]*/
  106. /*[IF*/
  107. if(R){
  108. /*[IF*/
  109. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  110. R=X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2);
  111. }
  112. /*FI]*/
  113. /*[IF*/
  114. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  115. R=r175is_a_in((T175*)(/*(IRF4.1arguments*/NULL/*)*/),X87arguments(a1),a2);
  116. }
  117. /*FI]*/
  118. /*[IF*/
  119. if(!(R)){
  120. R=1;
  121. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  122. /*]*/
  123. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  124. /*]*/
  125. /*]*/
  126. /*[IF*/
  127. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  128. R=X46is_a_in(X87result_type(a1),(C)->_result_type/*20*/,a2);
  129. }
  130. /*FI]*/
  131. /*[IF*/
  132. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  133. R=r175is_a_in((T175*)(X87arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  134. }
  135. /*FI]*/
  136. }
  137. /*FI]*/
  138. }
  139. /*FI]*/
  140. /*[IF*/
  141. if(R){
  142. r201merge_header_comments(C,a1);
  143. }
  144. /*FI]*/
  145. return R;
  146. }
  147. /*No:CST_ATT_INTEGER.first_name*/
  148. /*No:CST_ATT_INTEGER.em1*/
  149. /*No:CST_ATT_INTEGER.header_comment*/
  150. /*No:CST_ATT_INTEGER.names*/
  151. /*No:CST_ATT_INTEGER.result_type*/
  152. /*No:CST_ATT_INTEGER.code_require*/
  153. /*No:CST_ATT_INTEGER.make_e_feature*/
  154.  
  155.  
  156. void r201add_into(T201* C,T0* a1){
  157. T0* _fn=NULL;
  158. T2 _i=0;
  159. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  160. _i=1;
  161. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  162. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  163. /*[IF*/
  164. if(r86has(((T86*)a1),X77to_key(_fn))){
  165. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  166. r67add_position(X77start_position(_fn));
  167. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  168. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  169. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  170. r7append((T7*)(oBC67explanation),b1);
  171. }/*]*/
  172. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  173. }
  174. else{
  175. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  176. }
  177. /*FI]*/
  178. _i=(_i)+(1);
  179. }
  180. }
  181.  
  182.  
  183. T6 r201can_hide(T201* C,T0* a1,T0* a2){
  184. T6 R=0;
  185. /*[IF*/
  186. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  187. /*[IF*/
  188. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  189. r67add_position(X87start_position(a1));
  190. r201error(r201start_position(C),((T0*)ms87_64647));
  191. }
  192. /*FI]*/
  193. }
  194. /*FI]*/
  195. /*[IF*/
  196. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  197. /*[IF*/
  198. {/*AT*/r67add_position(X87start_position(a1));
  199. r201error(r201start_position(C),((T0*)ms87_83182));
  200. }
  201. /*FI]*/
  202. }
  203. /*FI]*/
  204. /*[IF*/
  205. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  206. /*[IF*/
  207. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  208. /*[IF*/
  209. if(!(X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2))){
  210. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  211. r7append((T7*)(oBC67explanation),b1);
  212. }/*]*/
  213. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  214. r7append((T7*)(oBC67explanation),b1);
  215. }/*]*/
  216. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  217. }
  218. /*FI]*/
  219. }
  220. /*FI]*/
  221. }
  222. /*FI]*/
  223. /*[IF*/
  224. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  225. /*[IF*/
  226. /*AF*//*AE*/
  227. /*FI]*/
  228. }
  229. /*FI]*/
  230. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  231. /*[IF*/
  232. if(R){
  233. r201merge_header_comments(C,a1);
  234. }
  235. /*FI]*/
  236. return R;
  237. }
  238. /*No:CST_ATT_INTEGER.ensure_assertion*/
  239.  
  240.  
  241. T0* r201try_to_undefine(T201* C,T0* a1,T0* a2){
  242. T0* R=NULL;
  243. T0* _fn2=NULL;
  244. r67add_position(X77start_position(a1));
  245. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  246. /*[IF*/
  247. if((_fn2)!=((void*)(NULL))){
  248. X77undefine_in(_fn2,a2);
  249. }
  250. /*FI]*/
  251. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  252. /*]*/
  253. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  254. /*]*/
  255. /*]*/
  256. R=r201try_to_undefine_aux(C,a1,a2);
  257. /*[IF*/
  258. if((R)!=((void*)(NULL))){
  259. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  260. /*]*/
  261. r201merge_header_comments(C,R);
  262. }
  263. else{
  264. r22fatal_undefine(((T22*)a2),a1);
  265. }
  266. /*FI]*/
  267. return R;
  268. }
  269. /*No:CST_ATT_INTEGER.is_deferred*/
  270. T0*oBC87assertion_collector=NULL;
  271. /*No:CST_ATT_INTEGER.set_clients*/
  272. /*No:CST_ATT_INTEGER.value*/
  273. T0*oBC11small_eiffel=NULL;
  274. /*No:CST_ATT_INTEGER.nb_errors*/
  275.  
  276.  
  277. T0* r201to_run_feature(T201* C,T0* a1,T0* a2){
  278. T0* R=NULL;
  279. T0* _rc=NULL;
  280. _rc=X46run_class(a1);
  281. R=r310at(((T310*)_rc),a2);
  282. if(NULL!=(R))switch(((T0*)R)->id) {
  283. case 326: 
  284. break;
  285. default:
  286. R=NULL;
  287. };/*[IF*/
  288. if((R)==((void*)(NULL))){
  289. {T326*n=malloc(sizeof(*n));
  290. *n=M326;
  291. r326make(n,a1,a2,(T0*)C);
  292. R=(T0*)n;
  293. }
  294. }
  295. /*FI]*/
  296. return R;
  297. }
  298.  
  299.  
  300. void r201merge_header_comments(T201* C,T0* a1){
  301. /*[IF*/
  302. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  303. /*[IF*/
  304. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  305. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  306. }
  307.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  308. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  309. }
  310. /*FI]*/
  311. }
  312. /*FI]*/
  313. }
  314. /*No:CST_ATT_INTEGER.arguments*/
  315. T0*oBC87header_comment_memory=NULL;
  316. /*No:CST_ATT_INTEGER.require_assertion*/
  317. T0*oBC87require_collector=NULL;
  318.  
  319.  
  320. T0* r201try_to_undefine_aux(T201* C,T0* a1,T0* a2){
  321. T0* R=NULL;
  322. r67add_position(r201start_position(C));
  323. r201error(X77start_position(a1),((T0*)ms189_99414));
  324. r22fatal_undefine(((T22*)a2),a1);
  325. return R;
  326. }
  327. /*No:CST_ATT_INTEGER.fz_dot*/
  328.  
  329.  
  330. void r201error(T0* a1,T0* a2){
  331. r67add_position(a1);
  332. r67error((T67*)(oBC11eh),a2);
  333. }
  334.  
  335.  
  336. void r201make(T201* C,T0* a1,T0* a2,T0* a3){
  337. /*[IRF3.3make_e_feature*/((((T201*)(C)))->_names)=(a1);
  338. /*]*/
  339. C->_result_type=a2;
  340. C->_value_mem=a3;
  341. }
  342.  
  343.  
  344. void r201collect_for(T2 a1){
  345. T0* _er=NULL;
  346. /*[IF*/
  347. if((a1)==(1)){
  348. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  349. /*[IF*/
  350. if((_er)!=((void*)(NULL))){
  351. /*[IF*/
  352. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  353. r315add_last((T315*)(oBC87require_collector),_er);
  354. }
  355. /*FI]*/
  356. }
  357. /*FI]*/
  358. }
  359. else{
  360. /*[IF*/
  361. /*AF*//*AE*/
  362. /*FI]*/
  363. }
  364. /*FI]*/
  365. }
  366. /*No:CST_ATT_INTEGER.set_header_comment*/
  367. /*No:CST_ATT_INTEGER.clients*/
  368. /*No:EIFFEL_PARSER.last_instruction*/
  369. /*No:EIFFEL_PARSER.fz_frozen*/
  370.  
  371.  
  372. T0* r66a_alias(T66* C){
  373. T0* R=NULL;
  374. /*[IF*/
  375. if(r66a_keyword(C,((T0*)ms12_2685))){
  376. /*[IF*/
  377. if(r66a_manifest_string(C)){
  378. R=((T158*)((C)->_last_manifest_string/*145*/))->_to_string/*8*/;
  379. }
  380. else{
  381. r66fcp(C,((T0*)ms66_63264));
  382. }
  383. /*FI]*/
  384. }
  385. /*FI]*/
  386. return R;
  387. }
  388.  
  389.  
  390. T6 r66a_type_formal_generic(T66* C){
  391. T6 R=0;
  392. T2 _rank=0;
  393. T0* _cn=NULL;
  394. T0* _fga=NULL;
  395. /*[IF*/
  396. if(((C)->_formal_generic_list/*37*/)!=((void*)(NULL))){
  397. _rank=1;
  398. while (!((R)||((_rank)>(/*(IRF4.6count*/(((T44*)(((T42*)((C)->_formal_generic_list/*37*/))->_list/*4*/)))->_upper/*8*//*)*/)))) {
  399. _fga=/*(IRF4.6item*/r44item(((T44*)(((T42*)((C)->_formal_generic_list/*37*/))->_list/*4*/)),_rank)/*)*/;
  400. /*[IF*/
  401. if(r66a_keyword(C,((T47*)((((T43*)_fga))->_name/*0*/))->_to_string/*0*/)){
  402. {T47*n=malloc(sizeof(*n));
  403. *n=M47;
  404. r47make(n,((T47*)((((T43*)_fga))->_name/*0*/))->_to_string/*0*/,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  405. _cn=(T0*)n;
  406. }
  407. {T267*n=malloc(sizeof(*n));
  408. *n=M267;
  409. r267make(n,_cn,_rank);
  410. C->_last_type_formal_generic=(T0*)n;
  411. }
  412. R=1;
  413. }
  414. /*FI]*/
  415. _rank=(_rank)+(1);
  416. }
  417. }
  418. /*FI]*/
  419. return R;
  420. }
  421.  
  422.  
  423. void r66err_exp(T0* a1,T0* a2){
  424. T0* _msg=NULL;
  425. {T7*n=malloc(sizeof(*n));
  426. *n=M7;
  427. r7make(n,0);
  428. _msg=(T0*)n;
  429. }
  430. r7append(((T7*)_msg),((T0*)ms66_48949));
  431. r7append(((T7*)_msg),a2);
  432. r7append(((T7*)_msg),((T0*)ms66_10120));
  433. r67add_position(a1);
  434. /*[IRF3.6fatal_error*/{T0* b1=_msg;
  435. r67fatal_error((T67*)(oBC11eh),b1);
  436. }/*]*/
  437. }
  438. /*No:EIFFEL_PARSER.fz_then*/
  439. /*No:EIFFEL_PARSER.formal_generic_list*/
  440. /*No:EIFFEL_PARSER.fz_indexing*/
  441.  
  442.  
  443. T6 r66a_rename_pair(T66* C){
  444. T6 R=0;
  445. T0* _rename_pair=NULL;
  446. T0* _name1=NULL;
  447. /*[IF*/
  448. if(r66a_feature_name(C)){
  449. _name1=(C)->_last_feature_name/*105*/;
  450. /*[IF*/
  451. if(r66a_keyword(C,((T0*)ms12_430))){
  452. /*[IF*/
  453. if(r66a_feature_name(C)){
  454. R=1;
  455. {T82*n=malloc(sizeof(*n));
  456. *n=M82;
  457. r82make(n,_name1,(C)->_last_feature_name/*105*/);
  458. _rename_pair=(T0*)n;
  459. }
  460. r56add_rename((T56*)((C)->_last_parent/*149*/),_rename_pair);
  461. }
  462. else{
  463. r66fcp(C,((T0*)ms66_121210));
  464. }
  465. /*FI]*/
  466. }
  467. else{
  468. /*[IRF3.6go_back*/{T66* C1=C;
  469. T0* b1=X77start_position(_name1);
  470. r66go_back_at(C1,/*(IRF4.6line*/((((T69*)b1))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T69*)b1))->_mem_line_column/*4*/)%(1000)/*)*/);
  471. }/*]*/
  472. }
  473. /*FI]*/
  474. }
  475. /*FI]*/
  476. return R;
  477. }
  478. /*No:EIFFEL_PARSER.last_feature_name*/
  479. /*No:EIFFEL_PARSER.fz_when*/
  480. /*No:EIFFEL_PARSER.last_parent*/
  481.  
  482.  
  483. T0* r66last_result(T66* C){
  484. T0* R=NULL;
  485. T0* _sp=NULL;
  486. _sp=r96start_position((T96*)(oBC66tmp_name));
  487. /*[IF*/
  488. if((C)->_inside_function/*29*/){
  489. /*[IF*/
  490. if((C)->_inside_once_function/*33*/){
  491. {T142*n=malloc(sizeof(*n));
  492. *n=M142;
  493. /*[IRF3.3make*/((((T142*)(n)))->_start_position)=(_sp);
  494. /*]*/
  495. R=(T0*)n;
  496. }
  497. }
  498. else{
  499. {T143*n=malloc(sizeof(*n));
  500. *n=M143;
  501. /*[IRF3.3make*/((((T143*)(n)))->_start_position)=(_sp);
  502. /*]*/
  503. R=(T0*)n;
  504. }
  505. }
  506. /*FI]*/
  507. }
  508. else{
  509. r67add_position(_sp);
  510. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_116820);
  511. r67fatal_error((T67*)(oBC11eh),b1);
  512. }/*]*/
  513. }
  514. /*FI]*/
  515. return R;
  516. }
  517. /*No:EIFFEL_PARSER.us_integer*/
  518.  
  519.  
  520. void r66a_function_call(T66* C){
  521. T0* _implicit_current=NULL;
  522. T0* _sfn=NULL;
  523. _sfn=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  524. {T181*n=malloc(sizeof(*n));
  525. *n=M181;
  526. /*[IRF3.3make*/((((T181*)(n)))->_start_position)=((((T135*)_sfn))->_start_position/*8*/);
  527. /*]*/
  528. _implicit_current=(T0*)n;
  529. }
  530. r66a_r10(C,0,_implicit_current,_sfn,r66a_actuals(C));
  531. }
  532.  
  533.  
  534. T6 r66a_real_constant(T66* C){
  535. T6 R=0;
  536. T2 _c=0;
  537. T2 _l=0;
  538. _l=(C)->_line/*16*/;
  539. _c=(C)->_column/*12*/;
  540. /*[IF*/
  541. if(r66skip1(C,'\53')){
  542. /*[IF*/
  543. if(r66a_real(C)){
  544. r69set_line_column((T69*)(((T161*)((C)->_last_real_constant/*153*/))->_start_position/*4*/),_l,_c);
  545. R=1;
  546. }
  547. else{
  548. r66go_back_at(C,_l,_c);
  549. }
  550. /*FI]*/
  551. }
  552.  else if(r66skip1(C,'\55')){
  553. /*[IF*/
  554. if(r66a_real(C)){
  555. r69set_line_column((T69*)(((T161*)((C)->_last_real_constant/*153*/))->_start_position/*4*/),_l,_c);
  556. /*[IRF3.5unary_minus*/r7add_first(((T7*)(((T161*)((C)->_last_real_constant/*153*/))->_to_string/*8*/)),'\55');
  557. /*]*/
  558. R=1;
  559. }
  560. else{
  561. r66go_back_at(C,_l,_c);
  562. }
  563. /*FI]*/
  564. }
  565.  else if(r66a_real(C)){
  566. R=1;
  567. }
  568. /*FI]*/
  569. return R;
  570. }
  571. /*No:EIFFEL_PARSER.fz_feature*/
  572.  
  573.  
  574. T6 r66a_assignment_or_call(T66* C){
  575. T6 R=0;
  576. /*[IF*/
  577. if((r66skip1(C,'\50'))&&(r66a_expression(C))){
  578. R=1;
  579. /*[IF*/
  580. if(r66skip1(C,'\51')){
  581. r66a_r10(C,1,(C)->_last_expression/*97*/,NULL,NULL);
  582. }
  583. else{
  584. r66fcp(C,((T0*)ms66_11245));
  585. }
  586. /*FI]*/
  587. }
  588.  else if(r66a_precursor(C,1)){
  589. R=1;
  590. }
  591.  else if(r66a_identifier(C)){
  592. R=1;
  593. /*[IF*/
  594. if(r66skip2(C,'\72','\75')){
  595. r66a_assignment_aux(C,1);
  596. }
  597.  else if(r66skip2(C,'\77','\75')){
  598. r66a_assignment_aux(C,0);
  599. }
  600.  else if((((r66a_current(C))||(r66a_result(C)))||(r66a_local_variable(C)))||(r66a_argument(C))){
  601. r66a_r10(C,1,(C)->_last_expression/*97*/,NULL,NULL);
  602. }
  603. else{
  604. r66a_procedure_call(C);
  605. }
  606. /*FI]*/
  607. }
  608. /*FI]*/
  609. return R;
  610. }
  611. /*No:EIFFEL_PARSER.fz_debug*/
  612. /*No:EIFFEL_PARSER.us_native_array*/
  613.  
  614.  
  615. T6 r66a_strip(T66* C){
  616. T6 R=0;
  617. T0* _sp=NULL;
  618. /*[IF*/
  619. if(r66a_keyword(C,((T0*)ms12_2885))){
  620. {T69*n=malloc(sizeof(*n));
  621. *n=M69;
  622. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  623. _sp=(T0*)n;
  624. }
  625. /*[IF*/
  626. if(r66skip1(C,'\50')){
  627. C->_ok=r66a_feature_name_list(C);
  628. {T134*n=malloc(sizeof(*n));
  629. *n=M134;
  630. r134make(n,_sp,(C)->_last_feature_name_list/*109*/);
  631. C->_last_expression=(T0*)n;
  632. }
  633. /*[IF*/
  634. if(!(r66skip1(C,'\51'))){
  635. r66fcp(C,((T0*)ms66_80379));
  636. }
  637. /*FI]*/
  638. R=1;
  639. }
  640. else{
  641. r66fcp(C,((T0*)ms66_65660));
  642. }
  643. /*FI]*/
  644. }
  645. /*FI]*/
  646. return R;
  647. }
  648. /*No:EIFFEL_PARSER.fz_loop*/
  649. T0*oBC66faof=NULL;
  650. /*No:EIFFEL_PARSER.us_pointer*/
  651.  
  652.  
  653. void r66a_indexing(T66* C){
  654. /*[IF*/
  655. if(r66a_keyword(C,((T0*)ms12_11000))){
  656. while (!(!(r66a_index_clause(C)))) {
  657. C->_ok=r66skip1(C,'\73');
  658. }
  659. }
  660. /*FI]*/
  661. }
  662. /*No:EIFFEL_PARSER.make*/
  663.  
  664.  
  665. T0* r66a_actuals(T66* C){
  666. T0* R=NULL;
  667. T0* _remainder=NULL;
  668. T0* _first_one=NULL;
  669. /*[IF*/
  670. if(r66skip1(C,'\50')){
  671. while (!(!(r66a_actual(C)))) {
  672. /*[IF*/
  673. if((_first_one)==((void*)(NULL))){
  674. _first_one=(C)->_last_expression/*97*/;
  675. }
  676. else{
  677. /*[IF*/
  678. if((_remainder)==((void*)(NULL))){
  679. {T138*n=malloc(sizeof(*n));
  680. *n=M138;
  681. r138with_capacity(n,4);
  682. _remainder=(T0*)n;
  683. }
  684. }
  685. /*FI]*/
  686. X138add_last(_remainder,(C)->_last_expression/*97*/);
  687. }
  688. /*FI]*/
  689. /*[IF*/
  690. if((!(r66skip1(C,'\54')))&&(((C)->_cc/*24*/)!=('\51'))){
  691. /*[IRF3.6wcp*/{T66* C1=C;
  692. T0* b1=((T0*)ms66_9410);
  693. r66warning(r66current_position(C1),b1);
  694. }/*]*/
  695. }
  696. /*FI]*/
  697. }
  698. /*[IF*/
  699. if((_first_one)==((void*)(NULL))){
  700. /*[IRF3.6wcp*/{T66* C1=C;
  701. T0* b1=((T0*)ms66_57660);
  702. r66warning(r66current_position(C1),b1);
  703. }/*]*/
  704. }
  705. else{
  706. {T136*n=malloc(sizeof(*n));
  707. *n=M136;
  708. r136make_n(n,_first_one,_remainder);
  709. R=(T0*)n;
  710. }
  711. }
  712. /*FI]*/
  713. /*[IF*/
  714. if(!(r66skip1(C,'\51'))){
  715. r66fcp(C,((T0*)ms66_65695));
  716. }
  717. /*FI]*/
  718. }
  719. /*FI]*/
  720. return R;
  721. }
  722.  
  723.  
  724. T0* r66a_clients(T66* C){
  725. T0* R=NULL;
  726. T2 _state=0;
  727. T0* _list=NULL;
  728. T0* _sp=NULL;
  729. /*[IF*/
  730. if(r66skip1(C,'\173')){
  731. {T69*n=malloc(sizeof(*n));
  732. *n=M69;
  733. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  734. _sp=(T0*)n;
  735. }
  736. while (!((_state)>(3))) {
  737. {int z1=_state;
  738.  
  739. if((0==z1)){
  740. /*[IF*/
  741. if(r66a_base_class_name(C)){
  742. {T183*n=malloc(sizeof(*n));
  743. *n=M183;
  744. /*[IRF3.3make_1*/((((T183*)(n)))->_first)=((C)->_last_class_name/*89*/);
  745. /*]*/
  746. _list=(T0*)n;
  747. }
  748. _state=2;
  749. }
  750.  else if(r66skip1(C,'\175')){
  751. _state=4;
  752. }
  753.  else if(((C)->_cc/*24*/)==('\54')){
  754. /*[IRF3.6wcp*/{T66* C1=C;
  755. T0* b1=((T0*)ms66_48195);
  756. r66warning(r66current_position(C1),b1);
  757. }/*]*/
  758. C->_ok=r66skip1(C,'\54');
  759. }
  760. else{
  761. _state=3;
  762. }
  763. /*FI]*/
  764. }
  765.  else 
  766. if((1==z1)){
  767. /*[IF*/
  768. if(r66a_base_class_name(C)){
  769. r183add_last(((T183*)_list),(C)->_last_class_name/*89*/);
  770. _state=2;
  771. }
  772.  else if(((C)->_cc/*24*/)==('\54')){
  773. /*[IRF3.6wcp*/{T66* C1=C;
  774. T0* b1=((T0*)ms66_48195);
  775. r66warning(r66current_position(C1),b1);
  776. }/*]*/
  777. C->_ok=r66skip1(C,'\54');
  778. }
  779.  else if(((C)->_cc/*24*/)==('\175')){
  780. /*[IRF3.6wcp*/{T66* C1=C;
  781. T0* b1=((T0*)ms66_26923);
  782. r66warning(r66current_position(C1),b1);
  783. }/*]*/
  784. C->_ok=r66skip1(C,'\175');
  785. _state=4;
  786. }
  787. else{
  788. _state=3;
  789. }
  790. /*FI]*/
  791. }
  792.  else 
  793. if((2==z1)){
  794. /*[IF*/
  795. if(r66skip1(C,'\54')){
  796. _state=1;
  797. }
  798.  else if(r66skip1(C,'\175')){
  799. _state=4;
  800. }
  801.  else if(r66a_base_class_name(C)){
  802. r66warning(((T47*)((C)->_last_class_name/*89*/))->_start_position/*4*/,((T0*)ms66_9410));
  803. r183add_last(((T183*)_list),(C)->_last_class_name/*89*/);
  804. }
  805. else{
  806. _state=3;
  807. }
  808. /*FI]*/
  809. }
  810.  else{r66fcp(C,((T0*)ms66_20247));
  811. _state=4;
  812. }}
  813. }
  814. {T94*n=malloc(sizeof(*n));
  815. *n=M94;
  816. r94make(n,_sp,_list);
  817. R=(T0*)n;
  818. }
  819. }
  820. else{
  821. {T94*n=malloc(sizeof(*n));
  822. *n=M94;
  823. /*[IRF3.1omitted*//*]*/
  824. R=(T0*)n;
  825. }
  826. }
  827. /*FI]*/
  828. return R;
  829. }
  830. T0*oBC11echo=NULL;
  831. /*No:EIFFEL_PARSER.us_implies*/
  832. T0*oBC66tmp_name=NULL;
  833. /*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/
  834.  
  835.  
  836. void r66a_feature_clause(T66* C){
  837. T0* _comment=NULL;
  838. T0* _clients=NULL;
  839. T0* _feature_clause=NULL;
  840. _clients=r66a_clients(C);
  841. _comment=r66get_comments(C);
  842. /*[IRF3.3clear*/((((T92*)((T92*)(oBC66faof))))->_upper)=(-(1));
  843. /*]*/
  844. while (!(!(r66a_feature_declaration(C)))) {
  845. C->_ok=r66skip1(C,'\73');
  846. /*[IF*/
  847. if(((C)->_last_feature_declaration/*101*/)!=((void*)(NULL))){
  848. r92add_last((T92*)(oBC66faof),(C)->_last_feature_declaration/*101*/);
  849. X87set_header_comment((C)->_last_feature_declaration/*101*/,r66get_comments(C));
  850. }
  851. /*FI]*/
  852. }
  853. /*[IF*/
  854. if(!(r92empty((T92*)(oBC66faof)))){
  855. {T89*n=malloc(sizeof(*n));
  856. *n=M89;
  857. r89make(n,_clients,_comment,r92twin((T92*)(oBC66faof)));
  858. _feature_clause=(T0*)n;
  859. }
  860. r22add_feature_clause((T22*)((C)->_last_base_class/*65*/),_feature_clause);
  861. }
  862.  else if((_comment)!=((void*)(NULL))){
  863. {T89*n=malloc(sizeof(*n));
  864. *n=M89;
  865. r89make(n,_clients,_comment,NULL);
  866. _feature_clause=(T0*)n;
  867. }
  868. r22add_feature_clause((T22*)((C)->_last_base_class/*65*/),_feature_clause);
  869. }
  870. /*FI]*/
  871. C->_last_keyword=NULL;
  872. }
  873. /*No:EIFFEL_PARSER.us_precursor*/
  874. /*No:EIFFEL_PARSER.fz_inherit*/
  875. /*No:EIFFEL_PARSER.fz_variant*/
  876. /*No:EIFFEL_PARSER.fz_inspect*/
  877. /*No:EIFFEL_PARSER.last_character_constant*/
  878. /*No:EIFFEL_PARSER.last_class_type*/
  879. /*No:EIFFEL_PARSER.last_class_name*/
  880. /*No:EIFFEL_PARSER.last_ascii_code*/
  881. /*No:EIFFEL_PARSER.line*/
  882. /*No:EIFFEL_PARSER.fz_require*/
  883. /*No:EIFFEL_PARSER.fz_invariant*/
  884.  
  885.  
  886. T6 r66a_integer(T66* C){
  887. T6 R=0;
  888. T2 _value=0;
  889. T2 _state=0;
  890. /*[IF*/
  891. if(r3is_digit((C)->_cc/*24*/)){
  892. R=1;
  893. C->_start_line=(C)->_line/*16*/;
  894. C->_start_column=(C)->_column/*12*/;
  895. _value=r3value((C)->_cc/*24*/);
  896. while (!((_state)>(7))) {
  897. r66next_char(C);
  898. {int z1=_state;
  899.  
  900. if((0==z1)){
  901. {int z2=(C)->_cc/*24*/;
  902.  
  903. if(((48<=z2)&&(z2<=57))){
  904. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  905. _state=1;
  906. }
  907.  else 
  908. if((95==z2)){
  909. _state=4;
  910. }
  911.  else{_state=8;
  912. }}
  913. }
  914.  else 
  915. if((1==z1)){
  916. {int z2=(C)->_cc/*24*/;
  917.  
  918. if(((48<=z2)&&(z2<=57))){
  919. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  920. _state=2;
  921. }
  922.  else 
  923. if((95==z2)){
  924. _state=4;
  925. }
  926.  else{_state=8;
  927. }}
  928. }
  929.  else 
  930. if((2==z1)){
  931. {int z2=(C)->_cc/*24*/;
  932.  
  933. if(((48<=z2)&&(z2<=57))){
  934. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  935. _state=3;
  936. }
  937.  else 
  938. if((95==z2)){
  939. _state=4;
  940. }
  941.  else{_state=8;
  942. }}
  943. }
  944.  else 
  945. if((3==z1)){
  946. {int z2=(C)->_cc/*24*/;
  947.  
  948. if(((48<=z2)&&(z2<=57))){
  949. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  950. }
  951.  else 
  952. if((95==z2)){
  953. r66fcp(C,((T0*)ms66_98851));
  954. }
  955.  else{_state=8;
  956. }}
  957. }
  958.  else 
  959. if((4==z1)){
  960. {int z2=(C)->_cc/*24*/;
  961.  
  962. if(((48<=z2)&&(z2<=57))){
  963. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  964. _state=5;
  965. }
  966.  else{r66fcp(C,((T0*)ms66_98851));
  967. }}
  968. }
  969.  else 
  970. if((5==z1)){
  971. {int z2=(C)->_cc/*24*/;
  972.  
  973. if(((48<=z2)&&(z2<=57))){
  974. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  975. _state=6;
  976. }
  977.  else{r66fcp(C,((T0*)ms66_98851));
  978. }}
  979. }
  980.  else 
  981. if((6==z1)){
  982. {int z2=(C)->_cc/*24*/;
  983.  
  984. if(((48<=z2)&&(z2<=57))){
  985. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  986. _state=7;
  987. }
  988.  else{r66fcp(C,((T0*)ms66_98851));
  989. }}
  990. }
  991.  else {{int z2=(C)->_cc/*24*/;
  992.  
  993. if(((48<=z2)&&(z2<=57))){
  994. r66fcp(C,((T0*)ms66_98851));
  995. }
  996.  else 
  997. if((95==z2)){
  998. _state=4;
  999. }
  1000.  else{_state=8;
  1001. }}
  1002. }}
  1003. }
  1004. /*[IF*/
  1005. if(r3is_letter((C)->_cc/*24*/)){
  1006. r66fcp(C,((T0*)ms66_31689));
  1007. }
  1008. /*FI]*/
  1009. r66skip_comments(C);
  1010. {T162*n=malloc(sizeof(*n));
  1011. *n=M162;
  1012. r162make(n,_value,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1013. C->_last_integer_constant=(T0*)n;
  1014. }
  1015. }
  1016. /*FI]*/
  1017. return R;
  1018. }
  1019.  
  1020.  
  1021. T0* r66current_position(T66* C){
  1022. T0* R=NULL;
  1023. {T69*n=malloc(sizeof(*n));
  1024. *n=M69;
  1025. r69make(n,(C)->_line/*16*/,(C)->_column/*12*/);
  1026. R=(T0*)n;
  1027. }
  1028. return R;
  1029. }
  1030. T0*oBC66forbidden_class=NULL;
  1031.  
  1032.  
  1033. T6 r66a_manifest_string(T66* C){
  1034. T6 R=0;
  1035. T2 _state=0;
  1036. /*[IF*/
  1037. if(((C)->_cc/*24*/)==('\42')){
  1038. R=1;
  1039. {T158*n=malloc(sizeof(*n));
  1040. *n=M158;
  1041. r158make(n,r66pos((C)->_line/*16*/,(C)->_column/*12*/));
  1042. C->_last_manifest_string=(T0*)n;
  1043. }
  1044. while (!((_state)>(3))) {
  1045. r66next_char(C);
  1046. {int z1=_state;
  1047.  
  1048. if((0==z1)){
  1049. {int z2=(C)->_cc/*24*/;
  1050.  
  1051. if((10==z2)){
  1052. r66fcp(C,((T0*)ms66_91143));
  1053. }
  1054.  else 
  1055. if((34==z2)){
  1056. _state=4;
  1057. }
  1058.  else 
  1059. if((37==z2)){
  1060. _state=1;
  1061. }
  1062.  else{/*[IRF3.5add*/r7extend(((T7*)(((T158*)((C)->_last_manifest_string/*145*/))->_to_string/*8*/)),(C)->_cc/*24*/);
  1063. /*]*/
  1064. }}
  1065. }
  1066.  else 
  1067. if((1==z1)){
  1068. _state=0;
  1069. {int z2=(C)->_cc/*24*/;
  1070.  
  1071. if((10==z2)){
  1072. _state=3;
  1073. }
  1074.  else 
  1075. if((65==z2)){
  1076. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\100');
  1077. }
  1078.  else 
  1079. if((66==z2)){
  1080. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\10');
  1081. }
  1082.  else 
  1083. if((67==z2)){
  1084. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\136');
  1085. }
  1086.  else 
  1087. if((68==z2)){
  1088. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\44');
  1089. }
  1090.  else 
  1091. if((70==z2)){
  1092. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\14');
  1093. }
  1094.  else 
  1095. if((72==z2)){
  1096. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\134');
  1097. }
  1098.  else 
  1099. if((76==z2)){
  1100. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\176');
  1101. }
  1102.  else 
  1103. if((78==z2)){
  1104. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\n');
  1105. }
  1106.  else 
  1107. if((81==z2)){
  1108. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\140');
  1109. }
  1110.  else 
  1111. if((82==z2)){
  1112. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\15');
  1113. }
  1114.  else 
  1115. if((83==z2)){
  1116. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\43');
  1117. }
  1118.  else 
  1119. if((84==z2)){
  1120. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\11');
  1121. }
  1122.  else 
  1123. if((85==z2)){
  1124. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\0');
  1125. }
  1126.  else 
  1127. if((86==z2)){
  1128. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\174');
  1129. }
  1130.  else 
  1131. if((37==z2)){
  1132. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\45');
  1133. }
  1134.  else 
  1135. if((39==z2)){
  1136. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\47');
  1137. }
  1138.  else 
  1139. if((34==z2)){
  1140. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\42');
  1141. }
  1142.  else 
  1143. if((40==z2)){
  1144. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\133');
  1145. }
  1146.  else 
  1147. if((41==z2)){
  1148. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\135');
  1149. }
  1150.  else 
  1151. if((60==z2)){
  1152. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\173');
  1153. }
  1154.  else 
  1155. if((62==z2)){
  1156. r158add_percent((T158*)((C)->_last_manifest_string/*145*/),'\175');
  1157. }
  1158.  else 
  1159. if((47==z2)){
  1160. r66a_ascii_code(C);
  1161. r158add_ascii((T158*)((C)->_last_manifest_string/*145*/),((T3)((C)->_last_ascii_code/*61*/)));
  1162. }
  1163.  else 
  1164. if((9==z2)||(32==z2)){
  1165. _state=2;
  1166. }
  1167.  else{r66fcp(C,((T0*)ms66_45084a));
  1168. _state=0;
  1169. }}
  1170. }
  1171.  else 
  1172. if((2==z1)){
  1173. {int z2=(C)->_cc/*24*/;
  1174.  
  1175. if((10==z2)){
  1176. _state=3;
  1177. }
  1178.  else 
  1179. if((9==z2)||(32==z2)){
  1180. }
  1181.  else{r66fcp(C,((T0*)ms66_192660));
  1182. }}
  1183. }
  1184.  else{{int z2=(C)->_cc/*24*/;
  1185.  
  1186. if((9==z2)||(32==z2)){
  1187. }
  1188.  else 
  1189. if((37==z2)){
  1190. r158break_line((T158*)((C)->_last_manifest_string/*145*/));
  1191. _state=0;
  1192. }
  1193.  else 
  1194. if((10==z2)){
  1195. r66fcp(C,((T0*)ms66_91143));
  1196. _state=0;
  1197. }
  1198.  else{r66fcp(C,((T0*)ms66_204786));
  1199. _state=0;
  1200. }}
  1201. }}
  1202. }
  1203. r66next_char(C);
  1204. r66skip_comments(C);
  1205. }
  1206. /*FI]*/
  1207. return R;
  1208. }
  1209. /*No:EIFFEL_PARSER.fz_jvm_invokestatic*/
  1210.  
  1211.  
  1212. void r66a_class_declaration(T66* C){
  1213. T6 _drop_comments_save=0;
  1214. T0* _al=NULL;
  1215. T0* _hc=NULL;
  1216. T0* _sp=NULL;
  1217. r66a_indexing(C);
  1218. /*[IF*/
  1219. if(r66a_keyword(C,((T0*)ms12_10664))){
  1220. r22set_is_deferred((T22*)((C)->_last_base_class/*65*/));
  1221. }
  1222. /*FI]*/
  1223. /*[IF*/
  1224. if(r66a_keyword(C,((T0*)ms12_10840))){
  1225. r22set_is_expanded((T22*)((C)->_last_base_class/*65*/));
  1226. /*[IF*/
  1227. if(r66a_keyword(C,((T0*)ms12_10664))){
  1228. r22set_is_deferred((T22*)((C)->_last_base_class/*65*/));
  1229. }
  1230. /*FI]*/
  1231. }
  1232. /*FI]*/
  1233. /*[IRF3.3set_heading_comment1*/((((T22*)((T22*)((C)->_last_base_class/*65*/))))->_heading_comment1)=(r66get_comments(C));
  1234. /*]*/
  1235. /*[IF*/
  1236. if(!(r66a_keyword(C,((T0*)ms12_2745)))){
  1237. r66fcp(C,((T0*)ms66_42300));
  1238. }
  1239. /*FI]*/
  1240. r66a_base_class_name1(C);
  1241. r66a_formal_generic_list(C);
  1242. /*[IF*/
  1243. if(r66a_keyword(C,((T0*)ms12_10928))){
  1244. /*[IF*/
  1245. if(r66a_manifest_string(C)){
  1246. /*[IRF3.3set_obsolete_type_string*/((((T22*)((T22*)((C)->_last_base_class/*65*/))))->_obsolete_type_string)=((C)->_last_manifest_string/*145*/);
  1247. /*]*/
  1248. }
  1249. else{
  1250. r66fcp(C,((T0*)ms66_125396));
  1251. }
  1252. /*FI]*/
  1253. }
  1254. /*FI]*/
  1255. /*[IRF3.3set_heading_comment2*/((((T22*)((T22*)((C)->_last_base_class/*65*/))))->_heading_comment2)=(r66get_comments(C));
  1256. /*]*/
  1257. /*[IF*/
  1258. if(r66a_keyword(C,((T0*)ms12_9527))){
  1259. r66a_parent_list(C,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),r66get_comments(C));
  1260. }
  1261. /*FI]*/
  1262. while (!(!(r66a_keyword(C,((T0*)ms12_11376))))) {
  1263. r66a_creation_clause(C,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1264. }
  1265. while (!(!(r66a_keyword(C,((T0*)ms12_8785))))) {
  1266. r66a_feature_clause(C);
  1267. }
  1268. _drop_comments_save=(C)->_drop_comments/*4*/;
  1269. C->_drop_comments=0;
  1270. /*[IF*/
  1271. if(r66a_keyword(C,((T0*)ms12_14427))){
  1272. {T69*n=malloc(sizeof(*n));
  1273. *n=M69;
  1274. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1275. _sp=(T0*)n;
  1276. }
  1277. _hc=r66get_comments(C);
  1278. _al=r66a_assertion(C);
  1279. r22set_invariant((T22*)((C)->_last_base_class/*65*/),_sp,_hc,_al);
  1280. }
  1281. /*FI]*/
  1282. /*[IF*/
  1283. if((r66a_keyword(C,((T0*)ms12_951)))||(((C)->_last_keyword/*113*/)==((void*)(((T0*)ms12_951))))){
  1284. /*[IF*/
  1285. if(((C)->_cc/*24*/)==('\73')){
  1286. /*[IRF3.6wcp*/{T66* C1=C;
  1287. T0* b1=((T0*)ms12_41475);
  1288. r66warning(r66current_position(C1),b1);
  1289. }/*]*/
  1290. C->_ok=r66skip1(C,'\73');
  1291. }
  1292. /*FI]*/
  1293. /*[IRF3.3set_end_comment*/((((T22*)((T22*)((C)->_last_base_class/*65*/))))->_end_comment)=(r66get_comments(C));
  1294. /*]*/
  1295. /*[IF*/
  1296. if(((C)->_cc/*24*/)!=('\0')){
  1297. r66fcp(C,((T0*)ms66_29463));
  1298. }
  1299. /*FI]*/
  1300. }
  1301. else{
  1302. r66fcp(C,((T0*)ms66_117540));
  1303. }
  1304. /*FI]*/
  1305. C->_drop_comments=_drop_comments_save;
  1306. }
  1307. /*No:EIFFEL_PARSER.last_base_class*/
  1308.  
  1309.  
  1310. void r66a_after_a_dot(T66* C,T6 a1,T0* a2){
  1311. T0* _eal=NULL;
  1312. T0* _sfn=NULL;
  1313. /*[IF*/
  1314. if(r66a_identifier(C)){
  1315. /*[IF*/
  1316. if(((r66a_result(C))||(r66a_void(C)))||(r66a_current(C))){
  1317. r67add_position(X53start_position((C)->_last_expression/*97*/));
  1318. r67error((T67*)(oBC11eh),((T0*)ms66_83714));
  1319. }
  1320. /*FI]*/
  1321. _sfn=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  1322. _eal=r66a_actuals(C);
  1323. r66a_r10(C,a1,a2,_sfn,_eal);
  1324. }
  1325. else{
  1326. r66fcp(C,((T0*)ms66_63584));
  1327. }
  1328. /*FI]*/
  1329. }
  1330. /*No:EIFFEL_PARSER.nb_errors*/
  1331.  
  1332.  
  1333. T6 r66a_actual(T66* C){
  1334. T6 R=0;
  1335. /*[IF*/
  1336. if(r66skip1(C,'\44')){
  1337. /*[IF*/
  1338. if(r66a_identifier(C)){
  1339. /*[IF*/
  1340. if(((r66a_result(C))||(r66a_void(C)))||(r66a_current(C))){
  1341. r67add_position(X53start_position((C)->_last_expression/*97*/));
  1342. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_98482);
  1343. r67fatal_error((T67*)(oBC11eh),b1);
  1344. }/*]*/
  1345. }
  1346. else{
  1347. {T147*n=malloc(sizeof(*n));
  1348. *n=M147;
  1349. /*[IRF3.3make*/((((T147*)(n)))->_feature_name)=(r96to_simple_feature_name((T96*)(oBC66tmp_name)));
  1350. /*]*/
  1351. C->_last_expression=(T0*)n;
  1352. }
  1353. R=1;
  1354. }
  1355. /*FI]*/
  1356. }
  1357. else{
  1358. r66fcp(C,((T0*)ms66_98482));
  1359. }
  1360. /*FI]*/
  1361. }
  1362.  else if(r66a_expression(C)){
  1363. R=1;
  1364. }
  1365. /*FI]*/
  1366. return R;
  1367. }
  1368.  
  1369.  
  1370. T6 r66a_infix(T66* C){
  1371. T6 R=0;
  1372. T0* _sp=NULL;
  1373. /*[IF*/
  1374. if(r66a_keyword(C,((T0*)ms12_2785))){
  1375. R=1;
  1376. {T69*n=malloc(sizeof(*n));
  1377. *n=M69;
  1378. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1379. _sp=(T0*)n;
  1380. }
  1381. /*[IF*/
  1382. if(((C)->_cc/*24*/)==('\42')){
  1383. r66next_char(C);
  1384. }
  1385. else{
  1386. /*[IRF3.6wcp*/{T66* C1=C;
  1387. T0* b1=((T0*)ms66_85196);
  1388. r66warning(r66current_position(C1),b1);
  1389. }/*]*/
  1390. }
  1391. /*FI]*/
  1392. /*[IF*/
  1393. if(r66a_binary(C,_sp)){
  1394. C->_last_infix=(C)->_last_binary/*73*/;
  1395. }
  1396.  else if(r66a_free_operator(C)){
  1397. C->_last_infix=r96to_infix_name(_sp);
  1398. }
  1399. else{
  1400. r66fcp(C,((T0*)ms66_53911));
  1401. }
  1402. /*FI]*/
  1403. /*[IF*/
  1404. if(!(r66skip1(C,'\42'))){
  1405. /*[IRF3.6wcp*/{T66* C1=C;
  1406. T0* b1=((T0*)ms66_38352a);
  1407. r66warning(r66current_position(C1),b1);
  1408. }/*]*/
  1409. }
  1410. /*FI]*/
  1411. }
  1412. /*FI]*/
  1413. return R;
  1414. }
  1415. /*No:EIFFEL_PARSER.us_plus*/
  1416. T0*oBC11parser_buffer=NULL;
  1417.  
  1418.  
  1419. void r66a_parent_list(T66* C,T0* a1,T0* a2){
  1420. T0* _list=NULL;
  1421. while (!(!(r66a_parent(C)))) {
  1422. /*[IF*/
  1423. if((_list)==((void*)(NULL))){
  1424. _list=se_ma57(1,
  1425. (C)->_last_parent/*149*/);
  1426. }
  1427. else{
  1428. r57add_last(((T57*)_list),(C)->_last_parent/*149*/);
  1429. }
  1430. /*FI]*/
  1431. C->_ok=r66skip1(C,'\73');
  1432. /*[IRF3.3set_comment*/((((T56*)((T56*)((C)->_last_parent/*149*/))))->_comment)=(r66get_comments(C));
  1433. /*]*/
  1434. }
  1435. /*[IF*/
  1436. if(((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))){
  1437. /*[IF*/
  1438. if((_list)==((void*)(NULL))){
  1439. /*[IF*/
  1440. if((((T22*)((C)->_last_base_class/*65*/))->_heading_comment2/*32*/)==((void*)(NULL))){
  1441. /*[IRF3.3set_heading_comment2*/((((T22*)((T22*)((C)->_last_base_class/*65*/))))->_heading_comment2)=(a2);
  1442. /*]*/
  1443. }
  1444. else{
  1445. r52append((T52*)(((T22*)((C)->_last_base_class/*65*/))->_heading_comment2/*32*/),a2);
  1446. }
  1447. /*FI]*/
  1448. }
  1449. else{
  1450. r22set_parent_list((T22*)((C)->_last_base_class/*65*/),a1,a2,_list);
  1451. }
  1452. /*FI]*/
  1453. }
  1454. /*FI]*/
  1455. }
  1456. /*No:EIFFEL_PARSER.fz_check*/
  1457. /*No:EIFFEL_PARSER.us_muls*/
  1458. /*No:EIFFEL_PARSER.cc*/
  1459.  
  1460.  
  1461. void r66prev_char(T66* C){
  1462. /*[IF*/
  1463. if(((C)->_column/*12*/)>(1)){
  1464. C->_column=((C)->_column/*12*/)-(1);
  1465. C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
  1466. }
  1467. else{
  1468. /*[IF*/
  1469. if(((C)->_line/*16*/)>(1)){
  1470. C->_line=((C)->_line/*16*/)-(1);
  1471. C->_current_line=r71item((C)->_line/*16*/);
  1472. C->_column=(((T7*)((C)->_current_line/*20*/))->_count/*4*/)+(1);
  1473. C->_cc='\n';
  1474. }
  1475. else{
  1476. C->_column=0;
  1477. C->_cc='\0';
  1478. }
  1479. /*FI]*/
  1480. }
  1481. /*FI]*/
  1482. }
  1483.  
  1484.  
  1485. T6 r66a_inspect(T66* C){
  1486. T6 R=0;
  1487. T0* _ec=NULL;
  1488. T0* _i=NULL;
  1489. T0* _spec=NULL;
  1490. T0* _sp=NULL;
  1491. /*[IF*/
  1492. if(r66a_keyword(C,((T0*)ms12_9590))){
  1493. R=1;
  1494. {T69*n=malloc(sizeof(*n));
  1495. *n=M69;
  1496. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1497. _sp=(T0*)n;
  1498. }
  1499. /*[IF*/
  1500. if(r66a_expression(C)){
  1501. C->_last_expression=X53add_comment((C)->_last_expression/*97*/,r66get_comments(C));
  1502. }
  1503. else{
  1504. r66fcp(C,((T0*)ms66_82621));
  1505. }
  1506. /*FI]*/
  1507. {T220*n=malloc(sizeof(*n));
  1508. *n=M220;
  1509. r220make(n,_sp,(C)->_last_expression/*97*/);
  1510. _i=(T0*)n;
  1511. }
  1512. while (!(!(r66a_when_part(C,_i)))) {
  1513. }
  1514. /*[IF*/
  1515. if(r66a_keyword(C,((T0*)ms12_1740))){
  1516. {T69*n=malloc(sizeof(*n));
  1517. *n=M69;
  1518. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1519. _spec=(T0*)n;
  1520. }
  1521. _ec=r66a_compound2(C,((T0*)ms66_33180),((T0*)ms12_951));
  1522. r220set_else_compound(((T220*)_i),_spec,_ec);
  1523. }
  1524.  else if(!(r66a_keyword(C,((T0*)ms12_951)))){
  1525. /*[IRF3.6wcp*/{T66* C1=C;
  1526. T0* b1=((T0*)ms66_76932);
  1527. r66warning(r66current_position(C1),b1);
  1528. }/*]*/
  1529. }
  1530. /*FI]*/
  1531. C->_last_instruction=_i;
  1532. }
  1533. /*FI]*/
  1534. return R;
  1535. }
  1536.  
  1537.  
  1538. T6 r66a_current(T66* C){
  1539. T6 R=0;
  1540. /*[IF*/
  1541. if(r96is_current()){
  1542. {T145*n=malloc(sizeof(*n));
  1543. *n=M145;
  1544. /*[IRF3.3make*/((((T145*)(n)))->_start_position)=(r96start_position((T96*)(oBC66tmp_name)));
  1545. /*]*/
  1546. C->_last_expression=(T0*)n;
  1547. }
  1548. R=1;
  1549. }
  1550. /*FI]*/
  1551. return R;
  1552. }
  1553.  
  1554.  
  1555. void r66a_rename_list(T66* C){
  1556. while (!(!(r66a_rename_pair(C)))) {
  1557. C->_ok=r66skip1(C,'\54');
  1558. }
  1559. }
  1560. /*No:EIFFEL_PARSER.us_or_else*/
  1561. /*No:EIFFEL_PARSER.case_insensitive*/
  1562. /*No:EIFFEL_PARSER.last_comments*/
  1563.  
  1564.  
  1565. void r66next_char(T66* C){
  1566. /*[IF*/
  1567. if(((C)->_column/*12*/)<(((T7*)((C)->_current_line/*20*/))->_count/*4*/)){
  1568. C->_column=((C)->_column/*12*/)+(1);
  1569. C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
  1570. }
  1571.  else if(((C)->_column/*12*/)==(((T7*)((C)->_current_line/*20*/))->_count/*4*/)){
  1572. C->_column=((C)->_column/*12*/)+(1);
  1573. C->_cc='\n';
  1574. }
  1575.  else if(((C)->_line/*16*/)==(((T71*)(oBC11parser_buffer))->_count/*4*/)){
  1576. C->_cc='\0';
  1577. }
  1578. else{
  1579. C->_column=1;
  1580. C->_line=((C)->_line/*16*/)+(1);
  1581. C->_current_line=r71item((C)->_line/*16*/);
  1582. /*[IF*/
  1583. if((((T7*)((C)->_current_line/*20*/))->_count/*4*/)==(0)){
  1584. C->_cc='\n';
  1585. }
  1586. else{
  1587. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  1588. }
  1589. /*FI]*/
  1590. }
  1591. /*FI]*/
  1592. }
  1593. /*No:EIFFEL_PARSER.us_slash*/
  1594.  
  1595.  
  1596. T6 r66a_unary(T66* C){
  1597. T6 R=0;
  1598. /*[IF*/
  1599. if(r66a_keyword(C,((T0*)ms13_1029))){
  1600. {T129*n=malloc(sizeof(*n));
  1601. *n=M129;
  1602. r129make(n,((T0*)ms13_1029),r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1603. C->_last_prefix=(T0*)n;
  1604. }
  1605. R=1;
  1606. }
  1607.  else if(r66skip1(C,'\53')){
  1608. {T129*n=malloc(sizeof(*n));
  1609. *n=M129;
  1610. r129make(n,((T0*)ms13_44),r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1611. C->_last_prefix=(T0*)n;
  1612. }
  1613. R=1;
  1614. }
  1615.  else if(r66skip1(C,'\55')){
  1616. {T129*n=malloc(sizeof(*n));
  1617. *n=M129;
  1618. r129make(n,((T0*)ms13_46),r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1619. C->_last_prefix=(T0*)n;
  1620. }
  1621. R=1;
  1622. }
  1623. /*FI]*/
  1624. return R;
  1625. }
  1626. /*No:EIFFEL_PARSER.drop_comments*/
  1627. /*No:EIFFEL_PARSER.ok*/
  1628.  
  1629.  
  1630. T0* r66analyse_class(T66* C,T0* a1){
  1631. T0* R=NULL;
  1632. T0* _path=NULL;
  1633. T2 _old_nbw=0;
  1634. T2 _old_nbe=0;
  1635. _path=((T71*)(oBC11parser_buffer))->_path/*0*/;
  1636. /*[IF*/
  1637. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)){
  1638. /*[IRF3.6append*/{T0* b1=((T0*)ms66_63808);
  1639. r7append((T7*)(oBC67explanation),b1);
  1640. }/*]*/
  1641. r67print_as_fatal_error((T67*)(oBC11eh));
  1642. }
  1643. /*FI]*/
  1644. r35put_integer((T35*)(oBC11echo),(/*(IRF4.9base_class_count*/((T61*)(oBC59base_class_dictionary))->_count/*32*//*)*/)+(1));
  1645. r35put_character((T35*)(oBC11echo),'\11');
  1646. r35put_string((T35*)(oBC11echo),_path);
  1647. r35put_character((T35*)(oBC11echo),'\n');
  1648. _old_nbe=/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/;
  1649. _old_nbw=/*(IRF4.9nb_warnings*/((T67*)(oBC11eh))->_nb_warnings/*0*//*)*/;
  1650. C->_is_running=1;
  1651. C->_inside_function=0;
  1652. C->_inside_once_function=0;
  1653. C->_in_ensure=0;
  1654. C->_last_comments=NULL;
  1655. C->_line=1;
  1656. C->_column=1;
  1657. C->_current_line=r71item((C)->_line/*16*/);
  1658. /*[IF*/
  1659. if((((T7*)((C)->_current_line/*20*/))->_count/*4*/)==(0)){
  1660. C->_cc='\n';
  1661. }
  1662. else{
  1663. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  1664. }
  1665. /*FI]*/
  1666. {T22*n=malloc(sizeof(*n));
  1667. *n=M22;
  1668. r22make(n);
  1669. C->_last_base_class=(T0*)n;
  1670. }
  1671. r66skip_comments(C);
  1672. r66a_class_declaration(C);
  1673. C->_is_running=0;
  1674. /*[IRF3.3unset_is_ready*/((((T71*)((T71*)(oBC11parser_buffer))))->_path)=(NULL);
  1675. /*]*/
  1676. R=(C)->_last_base_class/*65*/;
  1677. /*[IF*/
  1678. if(((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)-(_old_nbe))>(0)){
  1679. /*[IRF3.2show_nb_errors*/r66show_nb(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/,((T0*)ms66_6567));
  1680. /*]*/
  1681. r35w_put_string(((T0*)ms66_10068));
  1682. r35w_put_string(_path);
  1683. r35w_put_string(((T0*)ms66_5467));
  1684. R=NULL;
  1685. }
  1686.  else if(((/*(IRF4.9nb_warnings*/((T67*)(oBC11eh))->_nb_warnings/*0*//*)*/)-(_old_nbw))>(0)){
  1687. /*[IRF3.2show_nb_warnings*/r66show_nb(/*(IRF4.9nb_warnings*/((T67*)(oBC11eh))->_nb_warnings/*0*//*)*/,((T0*)ms66_8021));
  1688. /*]*/
  1689. }
  1690. /*FI]*/
  1691. /*[IF*/
  1692. if((R)!=((void*)(NULL))){
  1693. r59add_class((T59*)(oBC11small_eiffel),R);
  1694. /*[IF*/
  1695. if(((a1)!=((void*)(NULL)))&&(((((T47*)a1))->_to_string/*0*/)!=((void*)(((T47*)((((T22*)R))->_name/*24*/))->_to_string/*0*/)))){
  1696. r67add_position((((T47*)a1))->_start_position/*4*/);
  1697. /*[IRF3.6append*/{T0* b1=((T0*)ms12_3810);
  1698. r7append((T7*)(oBC67explanation),b1);
  1699. }/*]*/
  1700. /*[IRF3.6append*/{T0* b1=_path;
  1701. r7append((T7*)(oBC67explanation),b1);
  1702. }/*]*/
  1703. /*[IRF3.6append*/{T0* b1=((T0*)ms66_35397);
  1704. r7append((T7*)(oBC67explanation),b1);
  1705. }/*]*/
  1706. /*[IRF3.6append*/{T0* b1=(((T47*)a1))->_to_string/*0*/;
  1707. r7append((T7*)(oBC67explanation),b1);
  1708. }/*]*/
  1709. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_166);
  1710. r67fatal_error((T67*)(oBC11eh),b1);
  1711. }/*]*/
  1712. }
  1713. /*FI]*/
  1714. r22get_started(((T22*)R));
  1715. }
  1716. /*FI]*/
  1717. return R;
  1718. }
  1719.  
  1720.  
  1721. void r66skip_comments(T66* C){
  1722. T2 _state=0;
  1723. T0* _sp=NULL;
  1724. while (!((_state)==(2))) {
  1725. {int z1=_state;
  1726.  
  1727. if((0==z1)){
  1728. {int z2=(C)->_cc/*24*/;
  1729.  
  1730. if(((9<=z2)&&(z2<=10))||(32==z2)){
  1731. r66next_char(C);
  1732. }
  1733.  else 
  1734. if((45==z2)){
  1735. r66next_char(C);
  1736. _state=1;
  1737. }
  1738.  else{_state=2;
  1739. }}
  1740. }
  1741.  else {{int z2=(C)->_cc/*24*/;
  1742.  
  1743. if((45==z2)){
  1744. /*[IF*/
  1745. if((C)->_drop_comments/*4*/){
  1746. }
  1747. else{
  1748. /*[IF*/
  1749. if(((C)->_last_comments/*25*/)==((void*)(NULL))){
  1750. {T69*n=malloc(sizeof(*n));
  1751. *n=M69;
  1752. r69make(n,(C)->_line/*16*/,((C)->_column/*12*/)-(1));
  1753. _sp=(T0*)n;
  1754. }
  1755. }
  1756. /*FI]*/
  1757. }
  1758. /*FI]*/
  1759. r66next_char(C);
  1760. /*[IRF3.3clear*/((((T7*)((T7*)(oBC66lcs))))->_count)=(0);
  1761. /*]*/
  1762. while (!(((C)->_cc/*24*/)==('\n'))) {
  1763. r7extend((T7*)(oBC66lcs),(C)->_cc/*24*/);
  1764. r66next_char(C);
  1765. }
  1766. /*[IF*/
  1767. if((C)->_drop_comments/*4*/){
  1768. }
  1769. else{
  1770. /*[IF*/
  1771. if(((C)->_last_comments/*25*/)==((void*)(NULL))){
  1772. {T52*n=malloc(sizeof(*n));
  1773. *n=M52;
  1774. r52make(n,_sp,se_ma34(1,
  1775. r7twin((T7*)(oBC66lcs))));
  1776. C->_last_comments=(T0*)n;
  1777. }
  1778. }
  1779. else{
  1780. /*[IRF3.5add_last*/r34add_last(((T34*)(((T52*)((C)->_last_comments/*25*/))->_list/*4*/)),r7twin((T7*)(oBC66lcs)));
  1781. /*]*/
  1782. }
  1783. /*FI]*/
  1784. }
  1785. /*FI]*/
  1786. _state=0;
  1787. }
  1788.  else{r66prev_char(C);
  1789. _state=2;
  1790. }}
  1791. }}
  1792. }
  1793. }
  1794.  
  1795.  
  1796. T6 r66a_local_variable(T66* C){
  1797. T6 R=0;
  1798. T2 _rank=0;
  1799. /*[IF*/
  1800. if(((C)->_local_vars/*53*/)!=((void*)(NULL))){
  1801. _rank=r166rank_of((T166*)((C)->_local_vars/*53*/),r96to_string((T96*)(oBC66tmp_name)));
  1802. /*[IF*/
  1803. if((_rank)>(0)){
  1804. C->_last_expression=r96to_local_name2((T96*)(oBC66tmp_name),(C)->_local_vars/*53*/,_rank);
  1805. R=1;
  1806. }
  1807. /*FI]*/
  1808. }
  1809. /*FI]*/
  1810. return R;
  1811. }
  1812. /*No:EIFFEL_PARSER.start_line*/
  1813.  
  1814.  
  1815. T6 r66a_retry(T66* C){
  1816. T6 R=0;
  1817. /*[IF*/
  1818. if(r66a_keyword(C,((T0*)ms12_2905))){
  1819. /*[IF*/
  1820. if(!((C)->_in_rescue/*45*/)){
  1821. r66error(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms66_115380));
  1822. }
  1823. /*FI]*/
  1824. {T219*n=malloc(sizeof(*n));
  1825. *n=M219;
  1826. /*[IRF3.3make*/((((T219*)(n)))->_start_position)=(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1827. /*]*/
  1828. C->_last_instruction=(T0*)n;
  1829. }
  1830. R=1;
  1831. }
  1832. /*FI]*/
  1833. return R;
  1834. }
  1835. /*No:EIFFEL_PARSER.arguments*/
  1836.  
  1837.  
  1838. T6 r66a_e10(T66* C){
  1839. T6 R=0;
  1840. /*[IF*/
  1841. if(r66a_strip(C)){
  1842. R=1;
  1843. }
  1844.  else if(r66skip1(C,'\50')){
  1845. R=1;
  1846. /*[IF*/
  1847. if(r66a_expression(C)){
  1848. /*[IF*/
  1849. if(r66skip1(C,'\51')){
  1850. r66a_r10(C,0,(C)->_last_expression/*97*/,NULL,NULL);
  1851. }
  1852. else{
  1853. r66fcp(C,((T0*)ms66_40743));
  1854. }
  1855. /*FI]*/
  1856. }
  1857. else{
  1858. r66fcp(C,((T0*)ms66_29020));
  1859. }
  1860. /*FI]*/
  1861. }
  1862.  else if(r66a_manifest_constant(C)){
  1863. C->_last_expression=(C)->_last_manifest_constant/*141*/;
  1864. R=1;
  1865. /*[IF*/
  1866. if(r66skip1unless2(C,'\56','\56')){
  1867. /*[IRF3.6wcp*/{T66* C1=C;
  1868. T0* b1=((T0*)ms66_129072);
  1869. r66warning(r66current_position(C1),b1);
  1870. }/*]*/
  1871. r66a_after_a_dot(C,0,(C)->_last_expression/*97*/);
  1872. }
  1873. /*FI]*/
  1874. }
  1875.  else if(r66a_precursor(C,0)){
  1876. R=1;
  1877. }
  1878.  else if(r66a_identifier(C)){
  1879. R=1;
  1880. /*[IF*/
  1881. if(((((r66a_result(C))||(r66a_current(C)))||(r66a_void(C)))||(r66a_local_variable(C)))||(r66a_argument(C))){
  1882. r66a_r10(C,0,(C)->_last_expression/*97*/,NULL,NULL);
  1883. }
  1884. else{
  1885. r66a_function_call(C);
  1886. }
  1887. /*FI]*/
  1888. }
  1889. /*FI]*/
  1890. return R;
  1891. }
  1892. /*No:EIFFEL_PARSER.fz_select*/
  1893.  
  1894.  
  1895. T6 r66a_conditional(T66* C){
  1896. T6 R=0;
  1897. T0* _ifthenelse=NULL;
  1898. /*[IF*/
  1899. if(r66a_keyword(C,((T0*)ms12_420))){
  1900. R=1;
  1901. {T210*n=malloc(sizeof(*n));
  1902. *n=M210;
  1903. /*[IRF3.3make*/((((T210*)(n)))->_start_position)=(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1904. /*]*/
  1905. _ifthenelse=(T0*)n;
  1906. }
  1907. r66a_then_part_list(C,_ifthenelse);
  1908. /*[IF*/
  1909. if(r66a_keyword(C,((T0*)ms12_1740))){
  1910. /*[IRF3.3set_else_compound*/((((T210*)(((T210*)_ifthenelse))))->_else_compound)=(r66a_compound2(C,((T0*)ms66_13644),((T0*)ms12_951)));
  1911. /*]*/
  1912. }
  1913. else{
  1914. /*[IF*/
  1915. if(!(r66a_keyword(C,((T0*)ms12_951)))){
  1916. /*[IRF3.6wcp*/{T66* C1=C;
  1917. T0* b1=((T0*)ms66_29240);
  1918. r66warning(r66current_position(C1),b1);
  1919. }/*]*/
  1920. }
  1921. /*FI]*/
  1922. }
  1923. /*FI]*/
  1924. C->_last_instruction=_ifthenelse;
  1925. }
  1926. /*FI]*/
  1927. return R;
  1928. }
  1929. /*No:EIFFEL_PARSER.set_case_insensitive*/
  1930. /*No:EIFFEL_PARSER.is_running*/
  1931.  
  1932.  
  1933. void r66a_r10(T66* C,T6 a1,T0* a2,T0* a3,T0* a4){
  1934. /*[IF*/
  1935. if(r66skip1unless2(C,'\56','\56')){
  1936. r66a_after_a_dot(C,a1,r66to_call(a2,a3,a4));
  1937. }
  1938. else{
  1939. /*[IF*/
  1940. if(a1){
  1941. C->_last_instruction=r66to_proc_call(C,a2,a3,a4);
  1942. C->_last_expression=NULL;
  1943. }
  1944. else{
  1945. C->_last_expression=r66to_call(a2,a3,a4);
  1946. C->_last_instruction=NULL;
  1947. }
  1948. /*FI]*/
  1949. }
  1950. /*FI]*/
  1951. }
  1952. /*No:EIFFEL_PARSER.last_prefix*/
  1953. T0*oBC66tmp_string=NULL;
  1954. /*No:EIFFEL_PARSER.last_infix*/
  1955. /*No:EIFFEL_PARSER.fz_export*/
  1956.  
  1957.  
  1958. T6 r66a_tag_mark(T66* C){
  1959. T6 R=0;
  1960. /*[IF*/
  1961. if(r66a_identifier(C)){
  1962. /*[IF*/
  1963. if(r66skip1unless2(C,'\72','\75')){
  1964. R=1;
  1965. C->_last_tag_mark=r96to_tag_name((T96*)(oBC66tmp_name));
  1966. }
  1967. else{
  1968. C->_last_tag_mark=NULL;
  1969. r66go_back_at(C,((T96*)(oBC66tmp_name))->_li/*4*/,((T96*)(oBC66tmp_name))->_co/*8*/);
  1970. }
  1971. /*FI]*/
  1972. }
  1973. else{
  1974. C->_last_tag_mark=NULL;
  1975. }
  1976. /*FI]*/
  1977. return R;
  1978. }
  1979. /*No:EIFFEL_PARSER.last_feature_name_list*/
  1980. /*No:EIFFEL_PARSER.last_manifest_constant*/
  1981. /*No:EIFFEL_PARSER.fz_local*/
  1982. /*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/
  1983. /*No:EIFFEL_PARSER.current_class*/
  1984. /*No:EIFFEL_PARSER.last_tag_mark*/
  1985.  
  1986.  
  1987. void r66a_base_class_name1(T66* C){
  1988. T0* _ccn=NULL;
  1989. T6 _do_warning=0;
  1990. T2 _state=0;
  1991. _ccn=((T22*)((C)->_last_base_class/*65*/))->_name/*24*/;
  1992. /*[IF*/
  1993. if(r3is_letter((C)->_cc/*24*/)){
  1994. r69set_line_column((T69*)((((T47*)_ccn))->_start_position/*4*/),(C)->_line/*16*/,(C)->_column/*12*/);
  1995. r96initialize((T96*)(oBC66tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  1996. /*[IF*/
  1997. if((((unsigned)((C)->_cc/*24*/))>=((unsigned)('a')))){
  1998. _do_warning=1;
  1999. C->_cc=r3to_upper((C)->_cc/*24*/);
  2000. }
  2001. /*FI]*/
  2002. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  2003. r7extend((T7*)(oBC96tmp_string),b1);
  2004. }/*]*/
  2005. while (!((_state)>(0))) {
  2006. r66next_char(C);
  2007. {int z1=(C)->_cc/*24*/;
  2008.  
  2009. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  2010. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  2011. r7extend((T7*)(oBC96tmp_string),b1);
  2012. }/*]*/
  2013. }
  2014.  else 
  2015. if(((97<=z1)&&(z1<=122))){
  2016. _do_warning=1;
  2017. /*[IRF3.6extend*/{T3 b1=r3to_upper((C)->_cc/*24*/);
  2018. r7extend((T7*)(oBC96tmp_string),b1);
  2019. }/*]*/
  2020. }
  2021.  else{_state=1;
  2022. }}
  2023. }
  2024. r66skip_comments(C);
  2025. /*[IF*/
  2026. if(r96isa_keyword()){
  2027. r67add_position((((T47*)_ccn))->_start_position/*4*/);
  2028. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_71470);
  2029. r67fatal_error((T67*)(oBC11eh),b1);
  2030. }/*]*/
  2031. }
  2032. /*FI]*/
  2033. /*[IF*/
  2034. if(_do_warning){
  2035. r66warning((((T47*)_ccn))->_start_position/*4*/,((T0*)ms66_116415));
  2036. }
  2037. /*FI]*/
  2038. r47identify(((T47*)_ccn),r96to_string((T96*)(oBC66tmp_name)));
  2039. }
  2040. else{
  2041. r66fcp(C,((T0*)ms66_71470));
  2042. }
  2043. /*FI]*/
  2044. /*[IF*/
  2045. if(r34fast_has((T34*)(oBC66forbidden_class),(((T47*)_ccn))->_to_string/*0*/)){
  2046. r67add_position((((T47*)_ccn))->_start_position/*4*/);
  2047. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_44356);
  2048. r67fatal_error((T67*)(oBC11eh),b1);
  2049. }/*]*/
  2050. }
  2051. /*FI]*/
  2052. }
  2053. /*No:EIFFEL_PARSER.fz_01*/
  2054. /*No:EIFFEL_PARSER.fz_03*/
  2055. /*No:EIFFEL_PARSER.fz_iinaiv*/
  2056.  
  2057.  
  2058. T6 r66a_keyword(T66* C,T0* a1){
  2059. T6 R=0;
  2060. T2 _keyword_count=0;
  2061. T2 _i=0;
  2062. _keyword_count=(((T7*)a1))->_count/*4*/;
  2063. C->_start_line=(C)->_line/*16*/;
  2064. C->_start_column=(C)->_column/*12*/;
  2065. while (!(((_i)==(_keyword_count))||(!(r3same_as((C)->_cc/*24*/,/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) {
  2066. _i=(_i)+(1);
  2067. r66next_char(C);
  2068. }
  2069. /*[IF*/
  2070. if((_i)==(_keyword_count)){
  2071. {int z1=(C)->_cc/*24*/;
  2072.  
  2073. if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){
  2074. R=1;
  2075. C->_last_keyword=a1;
  2076. r66skip_comments(C);
  2077. }
  2078.  else 
  2079. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){
  2080. while (!((_i)==(0))) {
  2081. r66prev_char(C);
  2082. _i=(_i)-(1);
  2083. }
  2084. }
  2085.  else{R=1;
  2086. C->_last_keyword=a1;
  2087. }}
  2088. }
  2089. else{
  2090. while (!((_i)==(0))) {
  2091. r66prev_char(C);
  2092. _i=(_i)-(1);
  2093. }
  2094. }
  2095. /*FI]*/
  2096. return R;
  2097. }
  2098. /*No:EIFFEL_PARSER.fz_until*/
  2099. /*No:EIFFEL_PARSER.last_binary*/
  2100.  
  2101.  
  2102. T0* r66a_routine_body(T66* C){
  2103. T0* R=NULL;
  2104. /*[IF*/
  2105. if(r66a_keyword(C,((T0*)ms12_10664))){
  2106. r22set_is_deferred((T22*)((C)->_last_base_class/*65*/));
  2107. R=r186to_deferred_routine((T186*)(oBC66tmp_feature));
  2108. }
  2109.  else if(r66a_keyword(C,((T0*)ms12_11448))){
  2110. R=r66a_external(C);
  2111. }
  2112.  else if(r66a_keyword(C,((T0*)ms12_428))){
  2113. /*[IRF3.3set_routine_body*/((((T186*)((T186*)(oBC66tmp_feature))))->_routine_body)=(r66a_compound1(C));
  2114. /*]*/
  2115. R=r186to_procedure_or_function((T186*)(oBC66tmp_feature));
  2116. }
  2117.  else if(r66a_keyword(C,((T0*)ms12_1724a))){
  2118. C->_inside_once_function=1;
  2119. /*[IRF3.3set_routine_body*/((((T186*)((T186*)(oBC66tmp_feature))))->_routine_body)=(r66a_compound1(C));
  2120. /*]*/
  2121. R=r186to_once_routine((T186*)(oBC66tmp_feature));
  2122. }
  2123. else{
  2124. r66fcp(C,((T0*)ms66_34276));
  2125. }
  2126. /*FI]*/
  2127. return R;
  2128. }
  2129. /*No:EIFFEL_PARSER.last_expression*/
  2130. /*No:EIFFEL_PARSER.fz_59*/
  2131.  
  2132.  
  2133. T6 r66a_void(T66* C){
  2134. T6 R=0;
  2135. /*[IF*/
  2136. if(r96is_void()){
  2137. C->_last_expression=r96to_e_void((T96*)(oBC66tmp_name));
  2138. R=1;
  2139. }
  2140. /*FI]*/
  2141. return R;
  2142. }
  2143.  
  2144.  
  2145. T6 r66a_class_type(T66* C){
  2146. T6 R=0;
  2147. T0* _generic_list=NULL;
  2148. T0* _base_class_name=NULL;
  2149. T2 _state=0;
  2150. /*[IF*/
  2151. if(r66a_base_type(C)){
  2152. C->_last_class_type=(C)->_last_base_type/*69*/;
  2153. R=1;
  2154. }
  2155.  else if(r66a_base_class_name(C)){
  2156. R=1;
  2157. _base_class_name=(C)->_last_class_name/*89*/;
  2158. while (!((_state)>(2))) {
  2159. {int z1=_state;
  2160.  
  2161. if((0==z1)){
  2162. /*[IF*/
  2163. if(r66skip1(C,'\133')){
  2164. _state=1;
  2165. }
  2166. else{
  2167. {T261*n=malloc(sizeof(*n));
  2168. *n=M261;
  2169. /*[IRF3.3make*/((((T261*)(n)))->_base_class_name)=(_base_class_name);
  2170. /*]*/
  2171. C->_last_class_type=(T0*)n;
  2172. }
  2173. _state=3;
  2174. }
  2175. /*FI]*/
  2176. }
  2177.  else 
  2178. if((1==z1)){
  2179. /*[IF*/
  2180. if(r66a_type(C)){
  2181. /*[IF*/
  2182. if((_generic_list)==((void*)(NULL))){
  2183. _generic_list=se_ma249(1,
  2184. (C)->_last_type/*157*/);
  2185. }
  2186. else{
  2187. r249add_last(((T249*)_generic_list),(C)->_last_type/*157*/);
  2188. }
  2189. /*FI]*/
  2190. _state=2;
  2191. }
  2192.  else if(((C)->_cc/*24*/)==('\54')){
  2193. /*[IRF3.6wcp*/{T66* C1=C;
  2194. T0* b1=((T0*)ms66_26277);
  2195. r66warning(r66current_position(C1),b1);
  2196. }/*]*/
  2197. C->_ok=r66skip1(C,'\54');
  2198. }
  2199.  else if(((C)->_cc/*24*/)==('\135')){
  2200. _state=2;
  2201. }
  2202. else{
  2203. r66fcp(C,((T0*)ms66_25441));
  2204. _state=2;
  2205. }
  2206. /*FI]*/
  2207. }
  2208.  else{/*[IF*/
  2209. if(r66skip1(C,'\54')){
  2210. _state=1;
  2211. }
  2212.  else if(((C)->_cc/*24*/)==('\135')){
  2213. /*[IF*/
  2214. if((_generic_list)==((void*)(NULL))){
  2215. /*[IRF3.6wcp*/{T66* C1=C;
  2216. T0* b1=((T0*)ms66_54404);
  2217. r66warning(r66current_position(C1),b1);
  2218. }/*]*/
  2219. {T261*n=malloc(sizeof(*n));
  2220. *n=M261;
  2221. /*[IRF3.3make*/((((T261*)(n)))->_base_class_name)=(_base_class_name);
  2222. /*]*/
  2223. C->_last_class_type=(T0*)n;
  2224. }
  2225. }
  2226. else{
  2227. {T262*n=malloc(sizeof(*n));
  2228. *n=M262;
  2229. r262make(n,_base_class_name,_generic_list);
  2230. C->_last_class_type=(T0*)n;
  2231. }
  2232. }
  2233. /*FI]*/
  2234. C->_ok=r66skip1(C,'\135');
  2235. _state=3;
  2236. }
  2237.  else if(r66a_type(C)){
  2238. /*[IF*/
  2239. if((_generic_list)==((void*)(NULL))){
  2240. _generic_list=se_ma249(1,
  2241. (C)->_last_type/*157*/);
  2242. }
  2243. else{
  2244. r249add_last(((T249*)_generic_list),(C)->_last_type/*157*/);
  2245. }
  2246. /*FI]*/
  2247. r66warning(X46start_position((C)->_last_type/*157*/),((T0*)ms66_9410));
  2248. }
  2249. else{
  2250. r66fcp(C,((T0*)ms66_20315));
  2251. _state=3;
  2252. }
  2253. /*FI]*/
  2254. }}
  2255. }
  2256. }
  2257. /*FI]*/
  2258. return R;
  2259. }
  2260. /*No:EIFFEL_PARSER.in_ensure*/
  2261. /*No:EIFFEL_PARSER.fz_end*/
  2262. /*No:EIFFEL_PARSER.fz_external*/
  2263. /*No:EIFFEL_PARSER.inside_function*/
  2264. /*No:EIFFEL_PARSER.us_and*/
  2265.  
  2266.  
  2267. T0* r66a_assertion(T66* C){
  2268. T0* R=NULL;
  2269. T2 _state=0;
  2270. T0* _assertion=NULL;
  2271. T0* _expression=NULL;
  2272. T0* _tag=NULL;
  2273. while (!((_state)>(3))) {
  2274. {int z1=_state;
  2275.  
  2276. if((0==z1)){
  2277. /*[IF*/
  2278. if(((C)->_cc/*24*/)==('\73')){
  2279. /*[IRF3.6wcp*/{T66* C1=C;
  2280. T0* b1=((T0*)ms12_41475);
  2281. r66warning(r66current_position(C1),b1);
  2282. }/*]*/
  2283. C->_ok=r66skip1(C,'\73');
  2284. /*[IF*/
  2285. if(((C)->_last_comments/*25*/)!=((void*)(NULL))){
  2286. {T49*n=malloc(sizeof(*n));
  2287. *n=M49;
  2288. r49make(n,NULL,NULL,r66get_comments(C));
  2289. _assertion=(T0*)n;
  2290. }
  2291. /*[IF*/
  2292. if((R)==((void*)(NULL))){
  2293. R=se_ma50(1,
  2294. _assertion);
  2295. }
  2296. else{
  2297. r50add_last(((T50*)R),_assertion);
  2298. }
  2299. /*FI]*/
  2300. }
  2301. /*FI]*/
  2302. }
  2303.  else if(r66a_tag_mark(C)){
  2304. _tag=(C)->_last_tag_mark/*161*/;
  2305. _state=1;
  2306. }
  2307.  else if(r66a_expression(C)){
  2308. _expression=(C)->_last_expression/*97*/;
  2309. _state=2;
  2310. }
  2311. else{
  2312. _state=4;
  2313. }
  2314. /*FI]*/
  2315. }
  2316.  else 
  2317. if((1==z1)){
  2318. /*[IF*/
  2319. if(r66skip1(C,'\73')){
  2320. {T49*n=malloc(sizeof(*n));
  2321. *n=M49;
  2322. r49make(n,_tag,NULL,r66get_comments(C));
  2323. _assertion=(T0*)n;
  2324. }
  2325. /*[IF*/
  2326. if((R)==((void*)(NULL))){
  2327. R=se_ma50(1,
  2328. _assertion);
  2329. }
  2330. else{
  2331. r50add_last(((T50*)R),_assertion);
  2332. }
  2333. /*FI]*/
  2334. _state=0;
  2335. }
  2336.  else if(r66a_tag_mark(C)){
  2337. {T49*n=malloc(sizeof(*n));
  2338. *n=M49;
  2339. r49make(n,_tag,NULL,r66get_comments(C));
  2340. _assertion=(T0*)n;
  2341. }
  2342. /*[IF*/
  2343. if((R)==((void*)(NULL))){
  2344. R=se_ma50(1,
  2345. _assertion);
  2346. }
  2347. else{
  2348. r50add_last(((T50*)R),_assertion);
  2349. }
  2350. /*FI]*/
  2351. _tag=(C)->_last_tag_mark/*161*/;
  2352. }
  2353.  else if(r66a_expression(C)){
  2354. _expression=(C)->_last_expression/*97*/;
  2355. _state=3;
  2356. }
  2357. else{
  2358. {T49*n=malloc(sizeof(*n));
  2359. *n=M49;
  2360. r49make(n,_tag,NULL,r66get_comments(C));
  2361. _assertion=(T0*)n;
  2362. }
  2363. /*[IF*/
  2364. if((R)==((void*)(NULL))){
  2365. R=se_ma50(1,
  2366. _assertion);
  2367. }
  2368. else{
  2369. r50add_last(((T50*)R),_assertion);
  2370. }
  2371. /*FI]*/
  2372. _state=4;
  2373. }
  2374. /*FI]*/
  2375. }
  2376.  else 
  2377. if((2==z1)){
  2378. /*[IF*/
  2379. if(r66skip1(C,'\73')){
  2380. {T49*n=malloc(sizeof(*n));
  2381. *n=M49;
  2382. r49make(n,NULL,_expression,r66get_comments(C));
  2383. _assertion=(T0*)n;
  2384. }
  2385. /*[IF*/
  2386. if((R)==((void*)(NULL))){
  2387. R=se_ma50(1,
  2388. _assertion);
  2389. }
  2390. else{
  2391. r50add_last(((T50*)R),_assertion);
  2392. }
  2393. /*FI]*/
  2394. _state=0;
  2395. }
  2396.  else if(r66a_tag_mark(C)){
  2397. {T49*n=malloc(sizeof(*n));
  2398. *n=M49;
  2399. r49make(n,NULL,_expression,r66get_comments(C));
  2400. _assertion=(T0*)n;
  2401. }
  2402. /*[IF*/
  2403. if((R)==((void*)(NULL))){
  2404. R=se_ma50(1,
  2405. _assertion);
  2406. }
  2407. else{
  2408. r50add_last(((T50*)R),_assertion);
  2409. }
  2410. /*FI]*/
  2411. _tag=(C)->_last_tag_mark/*161*/;
  2412. _state=1;
  2413. }
  2414.  else if(r66a_expression(C)){
  2415. {T49*n=malloc(sizeof(*n));
  2416. *n=M49;
  2417. r49make(n,NULL,_expression,r66get_comments(C));
  2418. _assertion=(T0*)n;
  2419. }
  2420. /*[IF*/
  2421. if((R)==((void*)(NULL))){
  2422. R=se_ma50(1,
  2423. _assertion);
  2424. }
  2425. else{
  2426. r50add_last(((T50*)R),_assertion);
  2427. }
  2428. /*FI]*/
  2429. _expression=(C)->_last_expression/*97*/;
  2430. _state=2;
  2431. }
  2432. else{
  2433. {T49*n=malloc(sizeof(*n));
  2434. *n=M49;
  2435. r49make(n,NULL,_expression,r66get_comments(C));
  2436. _assertion=(T0*)n;
  2437. }
  2438. /*[IF*/
  2439. if((R)==((void*)(NULL))){
  2440. R=se_ma50(1,
  2441. _assertion);
  2442. }
  2443. else{
  2444. r50add_last(((T50*)R),_assertion);
  2445. }
  2446. /*FI]*/
  2447. _state=4;
  2448. }
  2449. /*FI]*/
  2450. }
  2451.  else{/*[IF*/
  2452. if(r66skip1(C,'\73')){
  2453. {T49*n=malloc(sizeof(*n));
  2454. *n=M49;
  2455. r49make(n,_tag,_expression,r66get_comments(C));
  2456. _assertion=(T0*)n;
  2457. }
  2458. /*[IF*/
  2459. if((R)==((void*)(NULL))){
  2460. R=se_ma50(1,
  2461. _assertion);
  2462. }
  2463. else{
  2464. r50add_last(((T50*)R),_assertion);
  2465. }
  2466. /*FI]*/
  2467. _state=0;
  2468. }
  2469.  else if(r66a_tag_mark(C)){
  2470. {T49*n=malloc(sizeof(*n));
  2471. *n=M49;
  2472. r49make(n,_tag,_expression,r66get_comments(C));
  2473. _assertion=(T0*)n;
  2474. }
  2475. /*[IF*/
  2476. if((R)==((void*)(NULL))){
  2477. R=se_ma50(1,
  2478. _assertion);
  2479. }
  2480. else{
  2481. r50add_last(((T50*)R),_assertion);
  2482. }
  2483. /*FI]*/
  2484. _tag=(C)->_last_tag_mark/*161*/;
  2485. _state=1;
  2486. }
  2487.  else if(r66a_expression(C)){
  2488. {T49*n=malloc(sizeof(*n));
  2489. *n=M49;
  2490. r49make(n,_tag,_expression,r66get_comments(C));
  2491. _assertion=(T0*)n;
  2492. }
  2493. /*[IF*/
  2494. if((R)==((void*)(NULL))){
  2495. R=se_ma50(1,
  2496. _assertion);
  2497. }
  2498. else{
  2499. r50add_last(((T50*)R),_assertion);
  2500. }
  2501. /*FI]*/
  2502. _expression=(C)->_last_expression/*97*/;
  2503. _state=2;
  2504. }
  2505. else{
  2506. {T49*n=malloc(sizeof(*n));
  2507. *n=M49;
  2508. r49make(n,_tag,_expression,r66get_comments(C));
  2509. _assertion=(T0*)n;
  2510. }
  2511. /*[IF*/
  2512. if((R)==((void*)(NULL))){
  2513. R=se_ma50(1,
  2514. _assertion);
  2515. }
  2516. else{
  2517. r50add_last(((T50*)R),_assertion);
  2518. }
  2519. /*FI]*/
  2520. _state=4;
  2521. }
  2522. /*FI]*/
  2523. }}
  2524. }
  2525. return R;
  2526. }
  2527. /*No:EIFFEL_PARSER.in_rescue*/
  2528. /*No:EIFFEL_PARSER.fz_old*/
  2529.  
  2530.  
  2531. T6 r66a_feature_name(T66* C){
  2532. T6 R=0;
  2533. /*[IF*/
  2534. if(r66a_prefix(C)){
  2535. C->_last_feature_name=(C)->_last_prefix/*125*/;
  2536. R=1;
  2537. }
  2538.  else if(r66a_infix(C)){
  2539. C->_last_feature_name=(C)->_last_infix/*121*/;
  2540. R=1;
  2541. }
  2542.  else if(r66a_identifier(C)){
  2543. C->_last_feature_name=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  2544. R=1;
  2545. }
  2546. /*FI]*/
  2547. return R;
  2548. }
  2549.  
  2550.  
  2551. T6 r66a_feature_declaration(T66* C){
  2552. T6 R=0;
  2553. r186initialize((T186*)(oBC66tmp_feature));
  2554. /*[IF*/
  2555. if(r66a_keyword(C,((T0*)ms12_7350))){
  2556. /*[IF*/
  2557. if(r66a_feature_name(C)){
  2558. R=1;
  2559. r66to_frozen_feature_name(C);
  2560. r186add_synonym((C)->_last_feature_name/*105*/);
  2561. }
  2562. else{
  2563. r66fcp(C,((T0*)ms66_33616));
  2564. }
  2565. /*FI]*/
  2566. }
  2567.  else if(r66a_feature_name(C)){
  2568. R=1;
  2569. r186add_synonym((C)->_last_feature_name/*105*/);
  2570. }
  2571. /*FI]*/
  2572. while (!(!(r66skip1(C,'\54')))) {
  2573. /*[IF*/
  2574. if(r66a_keyword(C,((T0*)ms12_7350))){
  2575. /*[IF*/
  2576. if(r66a_feature_name(C)){
  2577. r66to_frozen_feature_name(C);
  2578. r186add_synonym((C)->_last_feature_name/*105*/);
  2579. }
  2580. else{
  2581. r66fcp(C,((T0*)ms66_82695));
  2582. }
  2583. /*FI]*/
  2584. }
  2585.  else if(r66a_feature_name(C)){
  2586. r186add_synonym((C)->_last_feature_name/*105*/);
  2587. }
  2588. else{
  2589. /*[IRF3.6ecp*/{T66* C1=C;
  2590. T0* b1=((T0*)ms66_57900);
  2591. r66error(r66current_position(C1),b1);
  2592. }/*]*/
  2593. }
  2594. /*FI]*/
  2595. }
  2596. /*[IF*/
  2597. if(R){
  2598. r66a_formal_arg_list(C);
  2599. /*[IF*/
  2600. if(r66skip1(C,'\72')){
  2601. /*[IF*/
  2602. if(r66a_type(C)){
  2603. C->_inside_function=1;
  2604. /*[IRF3.3set_type*/((((T186*)((T186*)(oBC66tmp_feature))))->_type)=((C)->_last_type/*157*/);
  2605. /*]*/
  2606. }
  2607. else{
  2608. r66fcp(C,((T0*)ms66_25441));
  2609. }
  2610. /*FI]*/
  2611. }
  2612. else{
  2613. C->_inside_function=0;
  2614. }
  2615. /*FI]*/
  2616. /*[IF*/
  2617. if(r66a_keyword(C,((T0*)ms12_446))){
  2618. /*[IF*/
  2619. if(r66a_keyword(C,((T0*)ms12_7098))){
  2620. C->_last_feature_declaration=r186to_cst_att_unique((T186*)(oBC66tmp_feature));
  2621. }
  2622.  else if(r66a_boolean_constant(C)){
  2623. C->_last_feature_declaration=r186to_cst_att_boolean((T186*)(oBC66tmp_feature),(C)->_last_boolean_constant/*81*/);
  2624. }
  2625.  else if(r66a_character_constant(C)){
  2626. C->_last_feature_declaration=r186to_cst_att_character((T186*)(oBC66tmp_feature),(C)->_last_character_constant/*85*/);
  2627. }
  2628.  else if(r66a_manifest_string(C)){
  2629. C->_last_feature_declaration=r186to_cst_att_string((T186*)(oBC66tmp_feature),(C)->_last_manifest_string/*145*/);
  2630. }
  2631.  else if(r66a_bit_constant(C)){
  2632. C->_last_feature_declaration=r186to_cst_att_bit((T186*)(oBC66tmp_feature),(C)->_last_bit_constant/*77*/);
  2633. }
  2634.  else if(r66a_real_constant(C)){
  2635. C->_last_feature_declaration=r186to_cst_att_real((T186*)(oBC66tmp_feature),(C)->_last_real_constant/*153*/);
  2636. }
  2637.  else if(r66a_integer_constant(C)){
  2638. C->_last_feature_declaration=r186to_cst_att_integer((T186*)(oBC66tmp_feature),(C)->_last_integer_constant/*129*/);
  2639. }
  2640. else{
  2641. C->_last_feature_declaration=r66a_routine(C);
  2642. }
  2643. /*FI]*/
  2644. }
  2645. else{
  2646. C->_last_feature_declaration=r186to_writable_attribute((T186*)(oBC66tmp_feature));
  2647. }
  2648. /*FI]*/
  2649. C->_inside_function=0;
  2650. C->_inside_once_function=0;
  2651. C->_arguments=NULL;
  2652. }
  2653. /*FI]*/
  2654. return R;
  2655. }
  2656.  
  2657.  
  2658. void r66a_ascii_code(T66* C){
  2659. T2 _counter=0;
  2660. r66next_char(C);
  2661. _counter=0;
  2662. C->_last_ascii_code=0;
  2663. while (!(((_counter)>(3))||(((C)->_cc/*24*/)==('\57')))) {
  2664. {int z1=(C)->_cc/*24*/;
  2665.  
  2666. if(((48<=z1)&&(z1<=57))){
  2667. C->_last_ascii_code=(((C)->_last_ascii_code/*61*/)*(10))+(r3value((C)->_cc/*24*/));
  2668. }
  2669.  else{r66fcp(C,((T0*)ms66_75355));
  2670. }}
  2671. _counter=(_counter)+(1);
  2672. r66next_char(C);
  2673. }
  2674. /*[IF*/
  2675. if((_counter)==(0)){
  2676. r66fcp(C,((T0*)ms66_37500));
  2677. }
  2678.  else if((_counter)>(3)){
  2679. r66fcp(C,((T0*)ms66_98605));
  2680. }
  2681. else{
  2682. }
  2683. /*FI]*/
  2684. }
  2685. /*No:EIFFEL_PARSER.em1*/
  2686. /*No:EIFFEL_PARSER.em2*/
  2687. /*No:EIFFEL_PARSER.fz_ensure*/
  2688. /*No:EIFFEL_PARSER.last_index_value*/
  2689. /*No:EIFFEL_PARSER.em3*/
  2690. /*No:EIFFEL_PARSER.em4*/
  2691.  
  2692.  
  2693. T0* r66to_proc_call(T66* C,T0* a1,T0* a2,T0* a3){
  2694. T0* R=NULL;
  2695. /*[IF*/
  2696. if((a2)==((void*)(NULL))){
  2697. r66fcp(C,((T0*)ms66_198189));
  2698. }
  2699.  else if((a3)==((void*)(NULL))){
  2700. {T150*n=malloc(sizeof(*n));
  2701. *n=M150;
  2702. r150make(n,a1,a2);
  2703. R=(T0*)n;
  2704. }
  2705. }
  2706.  else if((r136count(((T136*)a3)))==(1)){
  2707. {T151*n=malloc(sizeof(*n));
  2708. *n=M151;
  2709. r151make(n,a1,a2,a3);
  2710. R=(T0*)n;
  2711. }
  2712. }
  2713. else{
  2714. {T152*n=malloc(sizeof(*n));
  2715. *n=M152;
  2716. r152make(n,a1,a2,a3);
  2717. R=(T0*)n;
  2718. }
  2719. }
  2720. /*FI]*/
  2721. return R;
  2722. }
  2723. /*No:EIFFEL_PARSER.em5*/
  2724. /*No:EIFFEL_PARSER.last_type*/
  2725. /*No:EIFFEL_PARSER.em6*/
  2726. /*No:EIFFEL_PARSER.em7*/
  2727.  
  2728.  
  2729. T6 r66a_index_value(T66* C){
  2730. T6 R=0;
  2731. /*[IF*/
  2732. if(r66a_identifier(C)){
  2733. C->_last_index_value=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  2734. R=1;
  2735. }
  2736.  else if(r66a_manifest_constant(C)){
  2737. C->_last_index_value=(C)->_last_manifest_constant/*141*/;
  2738. R=1;
  2739. }
  2740. /*FI]*/
  2741. return R;
  2742. }
  2743.  
  2744.  
  2745. T6 r66a_expression(T66* C){
  2746. T6 R=0;
  2747. T0* _list=NULL;
  2748. T0* _sp=NULL;
  2749. /*[IF*/
  2750. if(r66skip2(C,'\74','\74')){
  2751. R=1;
  2752. {T69*n=malloc(sizeof(*n));
  2753. *n=M69;
  2754. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  2755. _sp=(T0*)n;
  2756. }
  2757. while (!(!(r66a_expression(C)))) {
  2758. /*[IF*/
  2759. if((_list)==((void*)(NULL))){
  2760. _list=se_ma98(1,
  2761. (C)->_last_expression/*97*/);
  2762. }
  2763. else{
  2764. X98add_last(_list,(C)->_last_expression/*97*/);
  2765. }
  2766. /*FI]*/
  2767. C->_ok=r66skip1(C,'\54');
  2768. }
  2769. /*[IF*/
  2770. if(!(r66skip2(C,'\76','\76'))){
  2771. r66fcp(C,((T0*)ms66_57753));
  2772. }
  2773. /*FI]*/
  2774. {T97*n=malloc(sizeof(*n));
  2775. *n=M97;
  2776. r97make(n,_sp,_list);
  2777. C->_last_expression=(T0*)n;
  2778. }
  2779. }
  2780. else{
  2781. R=r66a_e0(C);
  2782. }
  2783. /*FI]*/
  2784. return R;
  2785. }
  2786. /*No:EIFFEL_PARSER.em8*/
  2787. /*No:EIFFEL_PARSER.em9*/
  2788.  
  2789.  
  2790. T6 r66a_feature_name_list(T66* C){
  2791. T6 R=0;
  2792. T2 _state=0;
  2793. C->_last_feature_name_list=NULL;
  2794. while (!((_state)>=(3))) {
  2795. {int z1=_state;
  2796.  
  2797. if((0==z1)){
  2798. /*[IF*/
  2799. if(r66a_feature_name(C)){
  2800. {T79*n=malloc(sizeof(*n));
  2801. *n=M79;
  2802. /*[IRF3.3make_1*/((((T79*)(n)))->_first)=((C)->_last_feature_name/*105*/);
  2803. /*]*/
  2804. C->_last_feature_name_list=(T0*)n;
  2805. }
  2806. R=1;
  2807. _state=1;
  2808. }
  2809.  else if(((C)->_cc/*24*/)==('\54')){
  2810. /*[IRF3.6wcp*/{T66* C1=C;
  2811. T0* b1=((T0*)ms66_48195);
  2812. r66warning(r66current_position(C1),b1);
  2813. }/*]*/
  2814. C->_ok=r66skip1(C,'\54');
  2815. }
  2816. else{
  2817. _state=3;
  2818. }
  2819. /*FI]*/
  2820. }
  2821.  else 
  2822. if((1==z1)){
  2823. /*[IF*/
  2824. if(((C)->_cc/*24*/)==('\54')){
  2825. C->_ok=r66skip1(C,'\54');
  2826. _state=2;
  2827. }
  2828.  else if(r66a_feature_name(C)){
  2829. r66warning(X77start_position((C)->_last_feature_name/*105*/),((T0*)ms66_9410));
  2830. r79add_last((T79*)((C)->_last_feature_name_list/*109*/),(C)->_last_feature_name/*105*/);
  2831. }
  2832. else{
  2833. _state=3;
  2834. }
  2835. /*FI]*/
  2836. }
  2837.  else {/*[IF*/
  2838. if(r66a_feature_name(C)){
  2839. r79add_last((T79*)((C)->_last_feature_name_list/*109*/),(C)->_last_feature_name/*105*/);
  2840. _state=1;
  2841. }
  2842.  else if(((C)->_cc/*24*/)==('\54')){
  2843. /*[IRF3.6wcp*/{T66* C1=C;
  2844. T0* b1=((T0*)ms66_26277);
  2845. r66warning(r66current_position(C1),b1);
  2846. }/*]*/
  2847. C->_ok=r66skip1(C,'\54');
  2848. }
  2849. else{
  2850. /*[IRF3.6ecp*/{T66* C1=C;
  2851. T0* b1=((T0*)ms66_33616);
  2852. r66error(r66current_position(C1),b1);
  2853. }/*]*/
  2854. _state=3;
  2855. }
  2856. /*FI]*/
  2857. }}
  2858. }
  2859. return R;
  2860. }
  2861.  
  2862.  
  2863. T6 r66a_type(T66* C){
  2864. T6 R=0;
  2865. T0* _argument_name2=NULL;
  2866. T0* _sp=NULL;
  2867. R=1;
  2868. /*[IF*/
  2869. if(r66a_keyword(C,((T0*)ms12_1724))){
  2870. {T69*n=malloc(sizeof(*n));
  2871. *n=M69;
  2872. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  2873. _sp=(T0*)n;
  2874. }
  2875. /*[IF*/
  2876. if(r66a_infix(C)){
  2877. {T243*n=malloc(sizeof(*n));
  2878. *n=M243;
  2879. r243make(n,_sp,(C)->_last_infix/*121*/);
  2880. C->_last_type=(T0*)n;
  2881. }
  2882. }
  2883.  else if(r66a_prefix(C)){
  2884. {T243*n=malloc(sizeof(*n));
  2885. *n=M243;
  2886. r243make(n,_sp,(C)->_last_prefix/*125*/);
  2887. C->_last_type=(T0*)n;
  2888. }
  2889. }
  2890.  else if(r66a_identifier(C)){
  2891. /*[IF*/
  2892. if(r66a_current(C)){
  2893. {T245*n=malloc(sizeof(*n));
  2894. *n=M245;
  2895. /*[IRF3.3make*/((((T245*)(n)))->_start_position)=(_sp);
  2896. /*]*/
  2897. C->_last_type=(T0*)n;
  2898. }
  2899. }
  2900.  else if(r66a_argument(C)){
  2901. _argument_name2=(C)->_last_expression/*97*/;
  2902. if(NULL!=(_argument_name2))switch(((T0*)_argument_name2)->id) {
  2903. case 176: 
  2904. break;
  2905. default:
  2906. _argument_name2=NULL;
  2907. };{T246*n=malloc(sizeof(*n));
  2908. *n=M246;
  2909. r246make(n,_sp,_argument_name2);
  2910. C->_last_type=(T0*)n;
  2911. }
  2912. }
  2913. else{
  2914. {T243*n=malloc(sizeof(*n));
  2915. *n=M243;
  2916. r243make(n,_sp,r96to_simple_feature_name((T96*)(oBC66tmp_name)));
  2917. C->_last_type=(T0*)n;
  2918. }
  2919. }
  2920. /*FI]*/
  2921. }
  2922. else{
  2923. r66fcp(C,((T0*)ms66_350632));
  2924. }
  2925. /*FI]*/
  2926. }
  2927.  else if(r66a_keyword(C,((T0*)ms12_10840))){
  2928. {T69*n=malloc(sizeof(*n));
  2929. *n=M69;
  2930. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  2931. _sp=(T0*)n;
  2932. }
  2933. /*[IF*/
  2934. if(r66a_class_type(C)){
  2935. {T263*n=malloc(sizeof(*n));
  2936. *n=M263;
  2937. r263make(n,_sp,(C)->_last_class_type/*93*/);
  2938. C->_last_type=(T0*)n;
  2939. }
  2940. }
  2941. else{
  2942. r66fcp(C,((T0*)ms66_92480));
  2943. }
  2944. /*FI]*/
  2945. }
  2946.  else if(r66a_keyword(C,((T0*)ms13_687))){
  2947. {T69*n=malloc(sizeof(*n));
  2948. *n=M69;
  2949. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  2950. _sp=(T0*)n;
  2951. }
  2952. /*[IF*/
  2953. if(r66a_integer(C)){
  2954. {T264*n=malloc(sizeof(*n));
  2955. *n=M264;
  2956. r264make(n,_sp,(C)->_last_integer_constant/*129*/);
  2957. C->_last_type=(T0*)n;
  2958. }
  2959. }
  2960.  else if(r66a_identifier(C)){
  2961. {T266*n=malloc(sizeof(*n));
  2962. *n=M266;
  2963. r266make(n,_sp,r96to_simple_feature_name((T96*)(oBC66tmp_name)));
  2964. C->_last_type=(T0*)n;
  2965. }
  2966. }
  2967. else{
  2968. r66fcp(C,((T0*)ms66_116370));
  2969. }
  2970. /*FI]*/
  2971. }
  2972.  else if(r66a_type_formal_generic(C)){
  2973. C->_last_type=(C)->_last_type_formal_generic/*117*/;
  2974. }
  2975.  else if(r66a_class_type(C)){
  2976. C->_last_type=(C)->_last_class_type/*93*/;
  2977. }
  2978. else{
  2979. R=0;
  2980. }
  2981. /*FI]*/
  2982. return R;
  2983. }
  2984. /*No:EIFFEL_PARSER.fz_rename*/
  2985. /*No:EIFFEL_PARSER.fz_rescue*/
  2986.  
  2987.  
  2988. T0* r66a_routine(T66* C){
  2989. T0* R=NULL;
  2990. T0* _ea=NULL;
  2991. T0* _al=NULL;
  2992. T0* _hc=NULL;
  2993. T0* _sp=NULL;
  2994. /*[IF*/
  2995. if(r66a_keyword(C,((T0*)ms12_10928))){
  2996. /*[IF*/
  2997. if(r66a_manifest_string(C)){
  2998. /*[IRF3.3set_obsolete_mark*/((((T186*)((T186*)(oBC66tmp_feature))))->_obsolete_mark)=((C)->_last_manifest_string/*145*/);
  2999. /*]*/
  3000. }
  3001. else{
  3002. r66fcp(C,((T0*)ms66_71060));
  3003. }
  3004. /*FI]*/
  3005. }
  3006. /*FI]*/
  3007. /*[IRF3.3set_header_comment*/((((T186*)((T186*)(oBC66tmp_feature))))->_header_comment)=(r66get_comments(C));
  3008. /*]*/
  3009. /*[IF*/
  3010. if(r66a_keyword(C,((T0*)ms12_8904))){
  3011. {T69*n=malloc(sizeof(*n));
  3012. *n=M69;
  3013. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3014. _sp=(T0*)n;
  3015. }
  3016. /*[IF*/
  3017. if(r66a_keyword(C,((T0*)ms12_1740))){
  3018. _hc=r66get_comments(C);
  3019. r186set_require_else((T186*)(oBC66tmp_feature),_sp,_hc,r66a_assertion(C));
  3020. }
  3021. else{
  3022. _hc=r66get_comments(C);
  3023. r186set_require((T186*)(oBC66tmp_feature),_sp,_hc,r66a_assertion(C));
  3024. }
  3025. /*FI]*/
  3026. }
  3027. /*FI]*/
  3028. /*[IF*/
  3029. if(r66a_keyword(C,((T0*)ms12_2690a))){
  3030. r66a_local_var_list(C);
  3031. }
  3032. /*FI]*/
  3033. R=r66a_routine_body(C);
  3034. /*[IF*/
  3035. if(r66a_keyword(C,((T0*)ms12_7068))){
  3036. {T69*n=malloc(sizeof(*n));
  3037. *n=M69;
  3038. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3039. _sp=(T0*)n;
  3040. }
  3041. C->_in_ensure=1;
  3042. /*[IF*/
  3043. if(r66a_keyword(C,((T0*)ms12_1764))){
  3044. _hc=r66get_comments(C);
  3045. _al=r66a_assertion(C);
  3046. /*[IF*/
  3047. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  3048. {T203*n=malloc(sizeof(*n));
  3049. *n=M203;
  3050. r203make(n,_sp,_hc,_al);
  3051. _ea=(T0*)n;
  3052. }
  3053. /*[IRF3.3set_ensure_then*/((((T203*)(((T203*)_ea))))->_is_ensure_then)=(1);
  3054. /*]*/
  3055. }
  3056. /*FI]*/
  3057. X202set_ensure_assertion(R,_ea);
  3058. }
  3059. else{
  3060. _hc=r66get_comments(C);
  3061. _al=r66a_assertion(C);
  3062. /*[IF*/
  3063. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  3064. {T203*n=malloc(sizeof(*n));
  3065. *n=M203;
  3066. r203make(n,_sp,_hc,_al);
  3067. _ea=(T0*)n;
  3068. }
  3069. }
  3070. /*FI]*/
  3071. X202set_ensure_assertion(R,_ea);
  3072. }
  3073. /*FI]*/
  3074. C->_in_ensure=0;
  3075. }
  3076. /*FI]*/
  3077. /*[IF*/
  3078. if(r66a_keyword(C,((T0*)ms12_7002))){
  3079. C->_in_rescue=1;
  3080. X202set_rescue_compound(R,r66a_compound2(C,((T0*)ms12_7002),((T0*)ms12_951)));
  3081. C->_in_rescue=0;
  3082. }
  3083. else{
  3084. /*[IF*/
  3085. if(!(r66a_keyword(C,((T0*)ms12_951)))){
  3086. /*[IRF3.6wcp*/{T66* C1=C;
  3087. T0* b1=((T0*)ms66_72240);
  3088. r66warning(r66current_position(C1),b1);
  3089. }/*]*/
  3090. }
  3091. /*FI]*/
  3092. }
  3093. /*FI]*/
  3094. C->_local_vars=NULL;
  3095. return R;
  3096. }
  3097.  
  3098.  
  3099. T6 r66a_creation(T66* C){
  3100. T6 R=0;
  3101. T2 _state=0;
  3102. T0* _call=NULL;
  3103. T0* _proc_name=NULL;
  3104. T0* _writable=NULL;
  3105. T0* _type=NULL;
  3106. T0* _sp=NULL;
  3107. while (!((_state)>(6))) {
  3108. {int z1=_state;
  3109.  
  3110. if((0==z1)){
  3111. /*[IF*/
  3112. if(r66skip1(C,'\41')){
  3113. {T69*n=malloc(sizeof(*n));
  3114. *n=M69;
  3115. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3116. _sp=(T0*)n;
  3117. }
  3118. _state=1;
  3119. }
  3120. else{
  3121. _state=7;
  3122. }
  3123. /*FI]*/
  3124. }
  3125.  else 
  3126. if((1==z1)){
  3127. /*[IF*/
  3128. if(r66a_type(C)){
  3129. _type=(C)->_last_type/*157*/;
  3130. /*[IF*/
  3131. if(X46is_anchored(_type)){
  3132. r66warning(X46start_position(_type),((T0*)ms66_136367));
  3133. }
  3134. /*FI]*/
  3135. _state=2;
  3136. }
  3137.  else if(r66skip1(C,'\41')){
  3138. _state=3;
  3139. }
  3140. else{
  3141. r66fcp(C,((T0*)ms66_74340));
  3142. _state=8;
  3143. }
  3144. /*FI]*/
  3145. }
  3146.  else 
  3147. if((2==z1)){
  3148. /*[IF*/
  3149. if(r66skip1(C,'\41')){
  3150. _state=3;
  3151. }
  3152. else{
  3153. _state=8;
  3154. r66fcp(C,((T0*)ms66_47516));
  3155. }
  3156. /*FI]*/
  3157. }
  3158.  else 
  3159. if((3==z1)){
  3160. /*[IF*/
  3161. if(r66a_identifier(C)){
  3162. /*[IF*/
  3163. if(r66a_current(C)){
  3164. _state=8;
  3165. r66error(X53start_position((C)->_last_expression/*97*/),((T0*)ms66_74830));
  3166. }
  3167.  else if(r66a_argument(C)){
  3168. _state=8;
  3169. r66error(X53start_position((C)->_last_expression/*97*/),((T0*)ms66_112905));
  3170. }
  3171.  else if((r66a_result(C))||(r66a_local_variable(C))){
  3172. _writable=(C)->_last_expression/*97*/;
  3173. _state=4;
  3174. }
  3175. else{
  3176. _writable=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  3177. _state=4;
  3178. }
  3179. /*FI]*/
  3180. }
  3181. else{
  3182. _state=8;
  3183. r66fcp(C,((T0*)ms66_63591));
  3184. }
  3185. /*FI]*/
  3186. }
  3187.  else 
  3188. if((4==z1)){
  3189. /*[IF*/
  3190. if(r66skip1unless2(C,'\56','\56')){
  3191. _state=5;
  3192. }
  3193. else{
  3194. _state=7;
  3195. }
  3196. /*FI]*/
  3197. }
  3198.  else 
  3199. if((5==z1)){
  3200. /*[IF*/
  3201. if(r66a_identifier(C)){
  3202. _proc_name=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  3203. _state=6;
  3204. }
  3205. else{
  3206. _state=8;
  3207. r66fcp(C,((T0*)ms66_85917));
  3208. }
  3209. /*FI]*/
  3210. }
  3211.  else{/*[IF*/
  3212. if(((C)->_cc/*24*/)==('\50')){
  3213. _call=r66to_proc_call(C,_writable,_proc_name,r66a_actuals(C));
  3214. }
  3215. else{
  3216. {T150*n=malloc(sizeof(*n));
  3217. *n=M150;
  3218. r150make(n,_writable,_proc_name);
  3219. _call=(T0*)n;
  3220. }
  3221. }
  3222. /*FI]*/
  3223. _state=7;
  3224. }}
  3225. }
  3226. /*[IF*/
  3227. if(((_state)==(7))&&((_sp)!=((void*)(NULL)))){
  3228. R=1;
  3229. /*[IF*/
  3230. if(((_type)==((void*)(NULL)))&&((_call)==((void*)(NULL)))){
  3231. {T235*n=malloc(sizeof(*n));
  3232. *n=M235;
  3233. r235make(n,_sp,_writable);
  3234. C->_last_instruction=(T0*)n;
  3235. }
  3236. }
  3237.  else if(((_type)!=((void*)(NULL)))&&((_call)==((void*)(NULL)))){
  3238. {T238*n=malloc(sizeof(*n));
  3239. *n=M238;
  3240. r238make(n,_sp,_type,_writable);
  3241. C->_last_instruction=(T0*)n;
  3242. }
  3243. }
  3244.  else if(((_type)==((void*)(NULL)))&&((_call)!=((void*)(NULL)))){
  3245. {T240*n=malloc(sizeof(*n));
  3246. *n=M240;
  3247. r240make(n,_sp,_writable,_call);
  3248. C->_last_instruction=(T0*)n;
  3249. }
  3250. }
  3251. else{
  3252. {T242*n=malloc(sizeof(*n));
  3253. *n=M242;
  3254. r242make(n,_sp,_type,_writable,_call);
  3255. C->_last_instruction=(T0*)n;
  3256. }
  3257. }
  3258. /*FI]*/
  3259. }
  3260. /*FI]*/
  3261. return R;
  3262. }
  3263.  
  3264.  
  3265. T6 r66a_real(T66* C){
  3266. T6 R=0;
  3267. T2 _c=0;
  3268. T2 _l=0;
  3269. T2 _state=0;
  3270. /*[IF*/
  3271. if((r3is_digit((C)->_cc/*24*/))||(((C)->_cc/*24*/)==('\56'))){
  3272. _l=(C)->_line/*16*/;
  3273. _c=(C)->_column/*12*/;
  3274. /*[IRF3.3clear*/((((T7*)((T7*)(oBC66tmp_string))))->_count)=(0);
  3275. /*]*/
  3276. /*[IF*/
  3277. if(((C)->_cc/*24*/)==('\56')){
  3278. r7append((T7*)(oBC66tmp_string),((T0*)ms12_194));
  3279. _state=5;
  3280. }
  3281. else{
  3282. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3283. }
  3284. /*FI]*/
  3285. while (!((_state)>(11))) {
  3286. r66next_char(C);
  3287. {int z1=_state;
  3288.  
  3289. if((0==z1)){
  3290. {int z2=(C)->_cc/*24*/;
  3291.  
  3292. if(((48<=z2)&&(z2<=57))){
  3293. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3294. }
  3295.  else 
  3296. if((46==z2)){
  3297. r7extend((T7*)(oBC66tmp_string),'\56');
  3298. _state=4;
  3299. }
  3300.  else{_state=13;
  3301. }}
  3302. }
  3303.  else 
  3304. if((1==z1)){
  3305. {int z2=(C)->_cc/*24*/;
  3306.  
  3307. if(((48<=z2)&&(z2<=57))){
  3308. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3309. _state=2;
  3310. }
  3311.  else{r66fcp(C,((T0*)ms66_98851));
  3312. }}
  3313. }
  3314.  else 
  3315. if((2==z1)){
  3316. {int z2=(C)->_cc/*24*/;
  3317.  
  3318. if(((48<=z2)&&(z2<=57))){
  3319. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3320. _state=3;
  3321. }
  3322.  else{r66fcp(C,((T0*)ms66_98851));
  3323. }}
  3324. }
  3325.  else 
  3326. if((3==z1)){
  3327. {int z2=(C)->_cc/*24*/;
  3328.  
  3329. if(((48<=z2)&&(z2<=57))){
  3330. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3331. _state=0;
  3332. }
  3333.  else{r66fcp(C,((T0*)ms66_98851));
  3334. }}
  3335. }
  3336.  else 
  3337. if((4==z1)){
  3338. {int z2=(C)->_cc/*24*/;
  3339.  
  3340. if(((48<=z2)&&(z2<=57))){
  3341. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3342. _state=6;
  3343. }
  3344.  else 
  3345. if((69==z2)||(101==z2)){
  3346. r7extend((T7*)(oBC66tmp_string),'E');
  3347. _state=10;
  3348. }
  3349.  else{_state=12;
  3350. }}
  3351. }
  3352.  else 
  3353. if((5==z1)){
  3354. {int z2=(C)->_cc/*24*/;
  3355.  
  3356. if(((48<=z2)&&(z2<=57))){
  3357. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3358. _state=6;
  3359. }
  3360.  else{_state=13;
  3361. }}
  3362. }
  3363.  else 
  3364. if((6==z1)){
  3365. {int z2=(C)->_cc/*24*/;
  3366.  
  3367. if(((48<=z2)&&(z2<=57))){
  3368. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3369. }
  3370.  else 
  3371. if((69==z2)||(101==z2)){
  3372. r7extend((T7*)(oBC66tmp_string),'E');
  3373. _state=10;
  3374. }
  3375.  else 
  3376. if((95==z2)){
  3377. _state=7;
  3378. }
  3379.  else{_state=12;
  3380. }}
  3381. }
  3382.  else 
  3383. if((7==z1)){
  3384. {int z2=(C)->_cc/*24*/;
  3385.  
  3386. if(((48<=z2)&&(z2<=57))){
  3387. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3388. _state=8;
  3389. }
  3390.  else{r66fcp(C,((T0*)ms66_146421));
  3391. }}
  3392. }
  3393.  else 
  3394. if((8==z1)){
  3395. {int z2=(C)->_cc/*24*/;
  3396.  
  3397. if(((48<=z2)&&(z2<=57))){
  3398. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3399. _state=9;
  3400. }
  3401.  else{r66fcp(C,((T0*)ms66_146421));
  3402. }}
  3403. }
  3404.  else 
  3405. if((9==z1)){
  3406. {int z2=(C)->_cc/*24*/;
  3407.  
  3408. if(((48<=z2)&&(z2<=57))){
  3409. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3410. _state=6;
  3411. }
  3412.  else{r66fcp(C,((T0*)ms66_146421));
  3413. }}
  3414. }
  3415.  else 
  3416. if((10==z1)){
  3417. {int z2=(C)->_cc/*24*/;
  3418.  
  3419. if((43==z2)){
  3420. _state=11;
  3421. }
  3422.  else 
  3423. if((45==z2)){
  3424. r7extend((T7*)(oBC66tmp_string),'\55');
  3425. _state=11;
  3426. }
  3427.  else 
  3428. if(((48<=z2)&&(z2<=57))){
  3429. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3430. _state=11;
  3431. }
  3432.  else{r66fcp(C,((T0*)ms66_71434));
  3433. _state=13;
  3434. }}
  3435. }
  3436.  else{{int z2=(C)->_cc/*24*/;
  3437.  
  3438. if(((48<=z2)&&(z2<=57))){
  3439. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3440. }
  3441.  else{_state=12;
  3442. }}
  3443. }}
  3444. }
  3445. /*[IF*/
  3446. if((_state)==(12)){
  3447. {T161*n=malloc(sizeof(*n));
  3448. *n=M161;
  3449. r161make(n,r66pos(_l,_c),r7twin((T7*)(oBC66tmp_string)));
  3450. C->_last_real_constant=(T0*)n;
  3451. }
  3452. R=1;
  3453. r66skip_comments(C);
  3454. }
  3455. else{
  3456. r66go_back_at(C,_l,_c);
  3457. }
  3458. /*FI]*/
  3459. }
  3460. /*FI]*/
  3461. return R;
  3462. }
  3463. /*No:EIFFEL_PARSER.fz_elseif*/
  3464.  
  3465.  
  3466. void r66a_assignment_aux(T66* C,T6 a1){
  3467. T0* _rhs=NULL;
  3468. T0* _writable=NULL;
  3469. /*[IF*/
  3470. if(r66a_current(C)){
  3471. r67add_position(X53start_position((C)->_last_expression/*97*/));
  3472. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_43368);
  3473. r67fatal_error((T67*)(oBC11eh),b1);
  3474. }/*]*/
  3475. }
  3476.  else if(r66a_void(C)){
  3477. r67add_position(r96start_position((T96*)(oBC66tmp_name)));
  3478. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_35190);
  3479. r67fatal_error((T67*)(oBC11eh),b1);
  3480. }/*]*/
  3481. }
  3482.  else if(r66a_argument(C)){
  3483. r67add_position(X53start_position((C)->_last_expression/*97*/));
  3484. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_69224);
  3485. r67fatal_error((T67*)(oBC11eh),b1);
  3486. }/*]*/
  3487. }
  3488. else{
  3489. /*[IF*/
  3490. if(r96is_result()){
  3491. _writable=r66last_result(C);
  3492. }
  3493.  else if(r66a_local_variable(C)){
  3494. _writable=(C)->_last_expression/*97*/;
  3495. }
  3496. else{
  3497. _writable=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  3498. }
  3499. /*FI]*/
  3500. /*[IF*/
  3501. if(r66a_expression(C)){
  3502. _rhs=(C)->_last_expression/*97*/;
  3503. /*[IF*/
  3504. if(a1){
  3505. {T268*n=malloc(sizeof(*n));
  3506. *n=M268;
  3507. r268make(n,_writable,_rhs);
  3508. C->_last_instruction=(T0*)n;
  3509. }
  3510. }
  3511. else{
  3512. {T269*n=malloc(sizeof(*n));
  3513. *n=M269;
  3514. r269make(n,_writable,_rhs);
  3515. C->_last_instruction=(T0*)n;
  3516. }
  3517. }
  3518. /*FI]*/
  3519. }
  3520. else{
  3521. r66fcp(C,((T0*)ms66_146421a));
  3522. }
  3523. /*FI]*/
  3524. }
  3525. /*FI]*/
  3526. }
  3527. /*No:EIFFEL_PARSER.us_double*/
  3528.  
  3529.  
  3530. T0* r66a_external(T66* C){
  3531. T0* R=NULL;
  3532. T0* _l=NULL;
  3533. /*[IF*/
  3534. if(((C)->_cc/*24*/)!=('\42')){
  3535. /*[IRF3.6wcp*/{T66* C1=C;
  3536. T0* b1=((T0*)ms66_14027a);
  3537. r66warning(r66current_position(C1),b1);
  3538. }/*]*/
  3539. }
  3540. else{
  3541. C->_ok=r66skip1(C,'\42');
  3542. }
  3543. /*FI]*/
  3544. /*[IF*/
  3545. if(r66a_keyword(C,((T0*)ms12_18788))){
  3546. {T278*n=malloc(sizeof(*n));
  3547. *n=M278;
  3548. _l=(T0*)n;
  3549. }
  3550. }
  3551.  else if(r66a_keyword(C,((T0*)ms12_25909))){
  3552. {T279*n=malloc(sizeof(*n));
  3553. *n=M279;
  3554. _l=(T0*)n;
  3555. }
  3556. }
  3557.  else if(r66a_keyword(C,((T0*)ms12_50768))){
  3558. {T281*n=malloc(sizeof(*n));
  3559. *n=M281;
  3560. _l=(T0*)n;
  3561. }
  3562. }
  3563.  else if(r66a_keyword(C,((T0*)ms12_37456))){
  3564. {T282*n=malloc(sizeof(*n));
  3565. *n=M282;
  3566. _l=(T0*)n;
  3567. }
  3568. }
  3569.  else if(r66a_keyword(C,((T0*)ms12_66440))){
  3570. {T283*n=malloc(sizeof(*n));
  3571. *n=M283;
  3572. _l=(T0*)n;
  3573. }
  3574. }
  3575.  else if(r66a_keyword(C,((T0*)ms66_675))){
  3576. {T278*n=malloc(sizeof(*n));
  3577. *n=M278;
  3578. _l=(T0*)n;
  3579. }
  3580. r66wcpefnc(C,((T0*)ms66_675a),((T0*)ms12_18788));
  3581. }
  3582.  else if(r66a_keyword(C,((T0*)ms66_681))){
  3583. {T279*n=malloc(sizeof(*n));
  3584. *n=M279;
  3585. _l=(T0*)n;
  3586. }
  3587. r66wcpefnc(C,((T0*)ms66_681a),((T0*)ms12_25909));
  3588. }
  3589.  else if(r66a_keyword(C,((T0*)ms66_1216))){
  3590. {T281*n=malloc(sizeof(*n));
  3591. *n=M281;
  3592. _l=(T0*)n;
  3593. }
  3594. r66wcpefnc(C,((T0*)ms66_1216a),((T0*)ms12_50768));
  3595. }
  3596.  else if(r66a_keyword(C,((T0*)ms66_68))){
  3597. {T282*n=malloc(sizeof(*n));
  3598. *n=M282;
  3599. _l=(T0*)n;
  3600. }
  3601. }
  3602.  else if(r66a_keyword(C,((T0*)ms66_286))){
  3603. {T283*n=malloc(sizeof(*n));
  3604. *n=M283;
  3605. _l=(T0*)n;
  3606. }
  3607. r66wcpefnc(C,((T0*)ms66_286a),((T0*)ms12_66440));
  3608. }
  3609.  else if(r66a_keyword(C,((T0*)ms12_32576))){
  3610. {T284*n=malloc(sizeof(*n));
  3611. *n=M284;
  3612. _l=(T0*)n;
  3613. }
  3614. }
  3615.  else if(r66a_keyword(C,((T0*)ms12_38896))){
  3616. {T286*n=malloc(sizeof(*n));
  3617. *n=M286;
  3618. _l=(T0*)n;
  3619. }
  3620. }
  3621. else{
  3622. r66fcp(C,((T0*)ms66_1422390));
  3623. }
  3624. /*FI]*/
  3625. /*[IF*/
  3626. if(((C)->_cc/*24*/)!=('\42')){
  3627. /*[IRF3.6wcp*/{T66* C1=C;
  3628. T0* b1=((T0*)ms66_14027a);
  3629. r66warning(r66current_position(C1),b1);
  3630. }/*]*/
  3631. }
  3632. else{
  3633. C->_ok=r66skip1(C,'\42');
  3634. }
  3635. /*FI]*/
  3636. R=r186to_external_routine((T186*)(oBC66tmp_feature),_l,r66a_alias(C));
  3637. return R;
  3638. }
  3639. /*No:EIFFEL_PARSER.fz_creation*/
  3640.  
  3641.  
  3642. T6 r66a_debug(T66* C){
  3643. T6 R=0;
  3644. T0* _e_debug=NULL;
  3645. T0* _list=NULL;
  3646. T0* _sp=NULL;
  3647. /*[IF*/
  3648. if(r66a_keyword(C,((T0*)ms12_2670))){
  3649. {T69*n=malloc(sizeof(*n));
  3650. *n=M69;
  3651. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3652. _sp=(T0*)n;
  3653. }
  3654. /*[IF*/
  3655. if(r66skip1(C,'\50')){
  3656. while (!(!(r66a_manifest_string(C)))) {
  3657. /*[IF*/
  3658. if((_list)==((void*)(NULL))){
  3659. _list=se_ma209(1,
  3660. (C)->_last_manifest_string/*145*/);
  3661. }
  3662. else{
  3663. r209add_last(((T209*)_list),(C)->_last_manifest_string/*145*/);
  3664. }
  3665. /*FI]*/
  3666. C->_ok=r66skip1(C,'\54');
  3667. }
  3668. /*[IF*/
  3669. if((_list)==((void*)(NULL))){
  3670. /*[IRF3.6wcp*/{T66* C1=C;
  3671. T0* b1=((T0*)ms66_61008);
  3672. r66warning(r66current_position(C1),b1);
  3673. }/*]*/
  3674. }
  3675. /*FI]*/
  3676. /*[IF*/
  3677. if(!(r66skip1(C,'\51'))){
  3678. r66fcp(C,((T0*)ms66_76190));
  3679. }
  3680. /*FI]*/
  3681. }
  3682. /*FI]*/
  3683. R=1;
  3684. {T208*n=malloc(sizeof(*n));
  3685. *n=M208;
  3686. r208make(n,_sp,_list,r66a_compound2(C,((T0*)ms66_2670),((T0*)ms12_951)));
  3687. _e_debug=(T0*)n;
  3688. }
  3689. C->_last_instruction=_e_debug;
  3690. }
  3691. /*FI]*/
  3692. return R;
  3693. }
  3694.  
  3695.  
  3696. T6 r66a_parent(T66* C){
  3697. T6 R=0;
  3698. /*[IF*/
  3699. if(r66a_class_type(C)){
  3700. R=1;
  3701. {T56*n=malloc(sizeof(*n));
  3702. *n=M56;
  3703. r56make(n,(C)->_last_class_type/*93*/);
  3704. C->_last_parent=(T0*)n;
  3705. }
  3706. /*[IF*/
  3707. if(r66a_keyword(C,((T0*)ms12_6912))){
  3708. r66a_rename_list(C);
  3709. /*[IF*/
  3710. if(((C)->_cc/*24*/)==('\73')){
  3711. /*[IRF3.6wcp*/{T66* C1=C;
  3712. T0* b1=((T0*)ms66_71638);
  3713. r66warning(r66current_position(C1),b1);
  3714. }/*]*/
  3715. C->_ok=r66skip1(C,'\73');
  3716. }
  3717. /*FI]*/
  3718. }
  3719. /*FI]*/
  3720. r66a_new_export_list(C);
  3721. /*[IF*/
  3722. if(r66a_keyword(C,((T0*)ms12_10824))){
  3723. /*[IF*/
  3724. if(r66a_feature_name_list(C)){
  3725. /*[IRF3.3set_undefine*/((((T56*)((T56*)((C)->_last_parent/*149*/))))->_undefine_list)=((C)->_last_feature_name_list/*109*/);
  3726. /*]*/
  3727. }
  3728. /*FI]*/
  3729. }
  3730. /*FI]*/
  3731. /*[IF*/
  3732. if(r66a_keyword(C,((T0*)ms12_10728))){
  3733. /*[IF*/
  3734. if(r66a_feature_name_list(C)){
  3735. /*[IRF3.3set_redefine*/((((T56*)((T56*)((C)->_last_parent/*149*/))))->_redefine_list)=((C)->_last_feature_name_list/*109*/);
  3736. /*]*/
  3737. }
  3738. /*FI]*/
  3739. }
  3740. /*FI]*/
  3741. /*[IF*/
  3742. if(r66a_keyword(C,((T0*)ms12_7410))){
  3743. /*[IF*/
  3744. if(r66a_feature_name_list(C)){
  3745. /*[IRF3.3set_select*/((((T56*)((T56*)((C)->_last_parent/*149*/))))->_select_list)=((C)->_last_feature_name_list/*109*/);
  3746. /*]*/
  3747. }
  3748. /*FI]*/
  3749. }
  3750. /*FI]*/
  3751. /*[IF*/
  3752. if(((((r66a_keyword(C,((T0*)ms12_6912)))||(r66a_keyword(C,((T0*)ms12_7614))))||(r66a_keyword(C,((T0*)ms12_10824))))||(r66a_keyword(C,((T0*)ms12_10728))))||(r66a_keyword(C,((T0*)ms12_7410)))){
  3753. r67add_position(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  3754. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_667805);
  3755. r67fatal_error((T67*)(oBC11eh),b1);
  3756. }/*]*/
  3757. }
  3758. /*FI]*/
  3759. C->_ok=r66a_keyword(C,((T0*)ms12_951));
  3760. }
  3761. /*FI]*/
  3762. return R;
  3763. }
  3764. /*No:EIFFEL_PARSER.fz_desc*/
  3765.  
  3766.  
  3767. T6 r66a_bit_constant(T66* C){
  3768. T6 R=0;
  3769. T2 _state=0;
  3770. T2 _c=0;
  3771. T2 _l=0;
  3772. /*[IF*/
  3773. if((((C)->_cc/*24*/)==('0'))||(((C)->_cc/*24*/)==('1'))){
  3774. _l=(C)->_line/*16*/;
  3775. _c=(C)->_column/*12*/;
  3776. /*[IRF3.3clear*/((((T7*)((T7*)(oBC66tmp_string))))->_count)=(0);
  3777. /*]*/
  3778. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3779. while (!((_state)>(0))) {
  3780. r66next_char(C);
  3781. {int z1=(C)->_cc/*24*/;
  3782.  
  3783. if(((48<=z1)&&(z1<=49))){
  3784. r7extend((T7*)(oBC66tmp_string),(C)->_cc/*24*/);
  3785. }
  3786.  else 
  3787. if((66==z1)||(98==z1)){
  3788. {T160*n=malloc(sizeof(*n));
  3789. *n=M160;
  3790. r160make(n,r66pos(_l,_c),r7twin((T7*)(oBC66tmp_string)));
  3791. C->_last_bit_constant=(T0*)n;
  3792. }
  3793. r66next_char(C);
  3794. r66skip_comments(C);
  3795. _state=1;
  3796. R=1;
  3797. }
  3798.  else{r66go_back_at(C,_l,_c);
  3799. _state=2;
  3800. }}
  3801. }
  3802. }
  3803. /*FI]*/
  3804. return R;
  3805. }
  3806. /*No:EIFFEL_PARSER.us_and_then*/
  3807. /*No:EIFFEL_PARSER.fz_alias*/
  3808.  
  3809.  
  3810. void r66a_formal_generic_list(T66* C){
  3811. T2 _state=0;
  3812. T0* _list=NULL;
  3813. T0* _fga=NULL;
  3814. T0* _constraint=NULL;
  3815. T0* _name=NULL;
  3816. T0* _sp=NULL;
  3817. C->_formal_generic_list=NULL;
  3818. while (!((_state)>(4))) {
  3819. {int z1=_state;
  3820.  
  3821. if((0==z1)){
  3822. /*[IF*/
  3823. if(r66skip1(C,'\133')){
  3824. {T69*n=malloc(sizeof(*n));
  3825. *n=M69;
  3826. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3827. _sp=(T0*)n;
  3828. }
  3829. _state=1;
  3830. }
  3831. else{
  3832. _state=5;
  3833. }
  3834. /*FI]*/
  3835. }
  3836.  else 
  3837. if((1==z1)){
  3838. /*[IF*/
  3839. if(r66a_base_class_name(C)){
  3840. _name=(C)->_last_class_name/*89*/;
  3841. _state=2;
  3842. }
  3843. else{
  3844. _state=6;
  3845. }
  3846. /*FI]*/
  3847. }
  3848.  else 
  3849. if((2==z1)){
  3850. /*[IF*/
  3851. if(r66skip2(C,'\55','\76')){
  3852. _state=4;
  3853. }
  3854.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\135'))){
  3855. {T43*n=malloc(sizeof(*n));
  3856. *n=M43;
  3857. r43make(n,_name,_constraint);
  3858. _fga=(T0*)n;
  3859. }
  3860. _name=NULL;
  3861. _constraint=NULL;
  3862. /*[IF*/
  3863. if((_list)==((void*)(NULL))){
  3864. _list=se_ma44(1,
  3865. _fga);
  3866. }
  3867. else{
  3868. r44add_last(((T44*)_list),_fga);
  3869. }
  3870. /*FI]*/
  3871. _fga=NULL;
  3872. /*[IF*/
  3873. if(r66skip1(C,'\54')){
  3874. _state=1;
  3875. }
  3876. else{
  3877. C->_ok=r66skip1(C,'\135');
  3878. _state=5;
  3879. }
  3880. /*FI]*/
  3881. }
  3882. else{
  3883. _state=6;
  3884. }
  3885. /*FI]*/
  3886. }
  3887.  else 
  3888. if((3==z1)){
  3889. /*[IF*/
  3890. if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\135'))){
  3891. {T43*n=malloc(sizeof(*n));
  3892. *n=M43;
  3893. r43make(n,_name,_constraint);
  3894. _fga=(T0*)n;
  3895. }
  3896. _name=NULL;
  3897. _constraint=NULL;
  3898. /*[IF*/
  3899. if((_list)==((void*)(NULL))){
  3900. _list=se_ma44(1,
  3901. _fga);
  3902. }
  3903. else{
  3904. r44add_last(((T44*)_list),_fga);
  3905. }
  3906. /*FI]*/
  3907. _fga=NULL;
  3908. /*[IF*/
  3909. if(r66skip1(C,'\54')){
  3910. _state=1;
  3911. }
  3912. else{
  3913. C->_ok=r66skip1(C,'\135');
  3914. _state=5;
  3915. }
  3916. /*FI]*/
  3917. }
  3918. else{
  3919. _state=6;
  3920. }
  3921. /*FI]*/
  3922. }
  3923.  else{/*[IF*/
  3924. if(r66a_class_type(C)){
  3925. _constraint=(C)->_last_class_type/*93*/;
  3926. _state=3;
  3927. }
  3928. else{
  3929. r66fcp(C,((T0*)ms66_60760));
  3930. _state=6;
  3931. }
  3932. /*FI]*/
  3933. }}
  3934. }
  3935. /*[IF*/
  3936. if((_state)==(6)){
  3937. }
  3938.  else if(((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))){
  3939. r66warning(_sp,((T0*)ms66_79128a));
  3940. }
  3941.  else if((_sp)!=((void*)(NULL))){
  3942. {T42*n=malloc(sizeof(*n));
  3943. *n=M42;
  3944. r42make(n,_sp,_list);
  3945. C->_formal_generic_list=(T0*)n;
  3946. }
  3947. /*[IRF3.3set_formal_generic_list*/((((T22*)((T22*)((C)->_last_base_class/*65*/))))->_formal_generic_list)=((C)->_formal_generic_list/*37*/);
  3948. /*]*/
  3949. }
  3950. /*FI]*/
  3951. }
  3952. /*No:EIFFEL_PARSER.fz_class*/
  3953. /*No:EIFFEL_PARSER.fz_prefix*/
  3954. /*No:EIFFEL_PARSER.fz_strip*/
  3955. /*No:EIFFEL_PARSER.fz_unique*/
  3956.  
  3957.  
  3958. T6 r66skip1unless2(T66* C,T3 a1,T3 a2){
  3959. T6 R=0;
  3960. C->_start_line=(C)->_line/*16*/;
  3961. C->_start_column=(C)->_column/*12*/;
  3962. /*[IF*/
  3963. if(((C)->_cc/*24*/)==(a1)){
  3964. r66next_char(C);
  3965. /*[IF*/
  3966. if(((C)->_cc/*24*/)==(a2)){
  3967. r66prev_char(C);
  3968. }
  3969. else{
  3970. R=1;
  3971. r66skip_comments(C);
  3972. }
  3973. /*FI]*/
  3974. }
  3975. /*FI]*/
  3976. return R;
  3977. }
  3978. /*No:EIFFEL_PARSER.ecp*/
  3979.  
  3980.  
  3981. void r66fcp(T66* C,T0* a1){
  3982. r67add_position(r66current_position(C));
  3983. /*[IRF3.6fatal_error*/{T0* b1=a1;
  3984. r67fatal_error((T67*)(oBC11eh),b1);
  3985. }/*]*/
  3986. }
  3987.  
  3988.  
  3989. T0* r66a_compound1(T66* C){
  3990. T0* R=NULL;
  3991. T0* _remainder=NULL;
  3992. T0* _first_one=NULL;
  3993. T0* _instruction=NULL;
  3994. T0* _hc=NULL;
  3995. _hc=r66get_comments(C);
  3996. while (!(((C)->_cc/*24*/)!=('\73'))) {
  3997. /*[IRF3.6wcp*/{T66* C1=C;
  3998. T0* b1=((T0*)ms12_41475);
  3999. r66warning(r66current_position(C1),b1);
  4000. }/*]*/
  4001. C->_ok=r66skip1(C,'\73');
  4002. }
  4003. while (!((!(r66a_instruction(C)))||((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
  4004. _instruction=(C)->_last_instruction/*133*/;
  4005. /*[IF*/
  4006. if(((C)->_cc/*24*/)==('\50')){
  4007. /*[IRF3.6wcp*/{T66* C1=C;
  4008. T0* b1=((T0*)ms66_9410a);
  4009. r66warning(r66current_position(C1),b1);
  4010. }/*]*/
  4011. }
  4012. /*FI]*/
  4013. C->_ok=r66skip1(C,'\73');
  4014. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4015. /*[IRF3.6wcp*/{T66* C1=C;
  4016. T0* b1=((T0*)ms12_41475);
  4017. r66warning(r66current_position(C1),b1);
  4018. }/*]*/
  4019. C->_ok=r66skip1(C,'\73');
  4020. }
  4021. /*[IF*/
  4022. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  4023. _instruction=X148add_comment(_instruction,r66get_comments(C));
  4024. /*[IF*/
  4025. if((_first_one)==((void*)(NULL))){
  4026. _first_one=_instruction;
  4027. }
  4028. else{
  4029. /*[IF*/
  4030. if((_remainder)==((void*)(NULL))){
  4031. {T205*n=malloc(sizeof(*n));
  4032. *n=M205;
  4033. r205with_capacity(n,4);
  4034. _remainder=(T0*)n;
  4035. }
  4036. }
  4037. /*FI]*/
  4038. r205add_last(((T205*)_remainder),_instruction);
  4039. }
  4040. /*FI]*/
  4041. }
  4042. /*FI]*/
  4043. }
  4044. /*[IF*/
  4045. if(((_hc)!=((void*)(NULL)))||((_first_one)!=((void*)(NULL)))){
  4046. {T204*n=malloc(sizeof(*n));
  4047. *n=M204;
  4048. r204make(n,_hc,_first_one,_remainder);
  4049. R=(T0*)n;
  4050. }
  4051. }
  4052. /*FI]*/
  4053. return R;
  4054. }
  4055.  
  4056.  
  4057. T6 r66a_result(T66* C){
  4058. T6 R=0;
  4059. /*[IF*/
  4060. if(r96is_result()){
  4061. C->_last_expression=r66last_result(C);
  4062. R=1;
  4063. }
  4064. /*FI]*/
  4065. return R;
  4066. }
  4067. /*No:EIFFEL_PARSER.fz_all*/
  4068.  
  4069.  
  4070. T6 r66skip1(T66* C,T3 a1){
  4071. T6 R=0;
  4072. /*[IF*/
  4073. if((a1)==((C)->_cc/*24*/)){
  4074. C->_start_line=(C)->_line/*16*/;
  4075. C->_start_column=(C)->_column/*12*/;
  4076. R=1;
  4077. r66next_char(C);
  4078. r66skip_comments(C);
  4079. }
  4080. /*FI]*/
  4081. return R;
  4082. }
  4083.  
  4084.  
  4085. T6 r66skip2(T66* C,T3 a1,T3 a2){
  4086. T6 R=0;
  4087. /*[IF*/
  4088. if((a1)==((C)->_cc/*24*/)){
  4089. C->_start_line=(C)->_line/*16*/;
  4090. C->_start_column=(C)->_column/*12*/;
  4091. r66next_char(C);
  4092. /*[IF*/
  4093. if((a2)==((C)->_cc/*24*/)){
  4094. R=1;
  4095. r66next_char(C);
  4096. r66skip_comments(C);
  4097. }
  4098. else{
  4099. r66prev_char(C);
  4100. }
  4101. /*FI]*/
  4102. }
  4103. /*FI]*/
  4104. return R;
  4105. }
  4106. /*No:EIFFEL_PARSER.last_keyword*/
  4107. T0*oBC66lcs=NULL;
  4108.  
  4109.  
  4110. T6 r66a_boolean_constant(T66* C){
  4111. T6 R=0;
  4112. /*[IF*/
  4113. if(r66a_keyword(C,((T0*)ms12_1832))){
  4114. {T155*n=malloc(sizeof(*n));
  4115. *n=M155;
  4116. /*[IRF3.3make*/((((T155*)(n)))->_start_position)=(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4117. /*]*/
  4118. C->_last_boolean_constant=(T0*)n;
  4119. }
  4120. R=1;
  4121. }
  4122.  else if(r66a_keyword(C,((T0*)ms12_2690))){
  4123. {T156*n=malloc(sizeof(*n));
  4124. *n=M156;
  4125. /*[IRF3.3make*/((((T156*)(n)))->_start_position)=(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4126. /*]*/
  4127. C->_last_boolean_constant=(T0*)n;
  4128. }
  4129. R=1;
  4130. }
  4131. /*FI]*/
  4132. return R;
  4133. }
  4134.  
  4135.  
  4136. T6 r66a_index_clause(T66* C){
  4137. T6 R=0;
  4138. T0* _index_clause=NULL;
  4139. /*[IF*/
  4140. if(r66a_identifier(C)){
  4141. R=1;
  4142. /*[IF*/
  4143. if(r66skip1(C,'\72')){
  4144. {T306*n=malloc(sizeof(*n));
  4145. *n=M306;
  4146. /*[IRF3.3with_tag*/((((T306*)(n)))->_tag)=(r96to_string((T96*)(oBC66tmp_name)));
  4147. /*]*/
  4148. _index_clause=(T0*)n;
  4149. }
  4150. /*[IF*/
  4151. if(r66a_index_value(C)){
  4152. r306add_last(((T306*)_index_clause),(C)->_last_index_value/*137*/);
  4153. }
  4154. else{
  4155. r66fcp(C,((T0*)ms66_86146));
  4156. }
  4157. /*FI]*/
  4158. }
  4159. else{
  4160. {T306*n=malloc(sizeof(*n));
  4161. *n=M306;
  4162. /*[IRF3.6without_tag*/{T306* C1=n;
  4163. T0* b1=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  4164. r306add_last(C1,b1);
  4165. }/*]*/
  4166. _index_clause=(T0*)n;
  4167. }
  4168. }
  4169. /*FI]*/
  4170. }
  4171.  else if(r66a_manifest_constant(C)){
  4172. R=1;
  4173. {T306*n=malloc(sizeof(*n));
  4174. *n=M306;
  4175. /*[IRF3.6without_tag*/{T306* C1=n;
  4176. T0* b1=(C)->_last_manifest_constant/*141*/;
  4177. r306add_last(C1,b1);
  4178. }/*]*/
  4179. _index_clause=(T0*)n;
  4180. }
  4181. }
  4182. /*FI]*/
  4183. /*[IF*/
  4184. if(R){
  4185. while (!(!(r66skip1(C,'\54')))) {
  4186. /*[IF*/
  4187. if(r66a_index_value(C)){
  4188. r306add_last(((T306*)_index_clause),(C)->_last_index_value/*137*/);
  4189. }
  4190. else{
  4191. r66fcp(C,((T0*)ms66_86146));
  4192. }
  4193. /*FI]*/
  4194. }
  4195. r22add_index_clause((T22*)((C)->_last_base_class/*65*/),_index_clause);
  4196. }
  4197. /*FI]*/
  4198. return R;
  4199. }
  4200.  
  4201.  
  4202. T6 r66a_instruction(T66* C){
  4203. T6 R=0;
  4204. R=(((((((r66a_check(C))||(r66a_debug(C)))||(r66a_conditional(C)))||(r66a_retry(C)))||(r66a_inspect(C)))||(r66a_loop(C)))||(r66a_creation(C)))||(r66a_assignment_or_call(C));
  4205. return R;
  4206. }
  4207.  
  4208.  
  4209. void r66wcpefnc(T66* C,T0* a1,T0* a2){
  4210. /*[IRF3.6append*/{T0* b1=((T0*)ms66_44280);
  4211. r7append((T7*)(oBC67explanation),b1);
  4212. }/*]*/
  4213. /*[IRF3.6append*/{T0* b1=a1;
  4214. r7append((T7*)(oBC67explanation),b1);
  4215. }/*]*/
  4216. /*[IRF3.6append*/{T0* b1=((T0*)ms66_6730);
  4217. r7append((T7*)(oBC67explanation),b1);
  4218. }/*]*/
  4219. /*[IRF3.6append*/{T0* b1=a2;
  4220. r7append((T7*)(oBC67explanation),b1);
  4221. }/*]*/
  4222. /*[IRF3.6wcp*/{T66* C1=C;
  4223. T0* b1=((T0*)ms66_94878);
  4224. r66warning(r66current_position(C1),b1);
  4225. }/*]*/
  4226. }
  4227. /*No:EIFFEL_PARSER.wcp*/
  4228. /*No:EIFFEL_PARSER.last_type_formal_generic*/
  4229.  
  4230.  
  4231. T6 r66a_base_type(T66* C){
  4232. T6 R=0;
  4233. T0* _sp=NULL;
  4234. R=1;
  4235. /*[IF*/
  4236. if(r66a_keyword(C,((T0*)ms13_714))){
  4237. {T247*n=malloc(sizeof(*n));
  4238. *n=M247;
  4239. r247make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4240. C->_last_base_type=(T0*)n;
  4241. }
  4242. }
  4243.  else if(r66a_keyword(C,((T0*)ms13_1990))){
  4244. {T69*n=malloc(sizeof(*n));
  4245. *n=M69;
  4246. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4247. _sp=(T0*)n;
  4248. }
  4249. /*[IF*/
  4250. if(((r66skip1(C,'\133'))&&(r66a_type(C)))&&(r66skip1(C,'\135'))){
  4251. {T248*n=malloc(sizeof(*n));
  4252. *n=M248;
  4253. r248make(n,_sp,(C)->_last_type/*157*/);
  4254. C->_last_base_type=(T0*)n;
  4255. }
  4256. }
  4257. else{
  4258. r66fcp(C,((T0*)ms66_64185));
  4259. }
  4260. /*FI]*/
  4261. }
  4262.  else if(r66a_keyword(C,((T0*)ms13_17628))){
  4263. {T69*n=malloc(sizeof(*n));
  4264. *n=M69;
  4265. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4266. _sp=(T0*)n;
  4267. }
  4268. /*[IF*/
  4269. if(((r66skip1(C,'\133'))&&(r66a_type(C)))&&(r66skip1(C,'\135'))){
  4270. {T251*n=malloc(sizeof(*n));
  4271. *n=M251;
  4272. r251make(n,_sp,(C)->_last_type/*157*/);
  4273. C->_last_base_type=(T0*)n;
  4274. }
  4275. }
  4276. else{
  4277. r66fcp(C,((T0*)ms66_90680));
  4278. }
  4279. /*FI]*/
  4280. }
  4281.  else if(r66a_keyword(C,((T0*)ms66_7203))){
  4282. {T69*n=malloc(sizeof(*n));
  4283. *n=M69;
  4284. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4285. _sp=(T0*)n;
  4286. }
  4287. /*[IF*/
  4288. if(((r66skip1(C,'\133'))&&(r66a_type(C)))&&(r66skip1(C,'\135'))){
  4289. {T251*n=malloc(sizeof(*n));
  4290. *n=M251;
  4291. r251make(n,_sp,(C)->_last_type/*157*/);
  4292. C->_last_base_type=(T0*)n;
  4293. }
  4294. }
  4295. else{
  4296. r66fcp(C,((T0*)ms66_71295));
  4297. }
  4298. /*FI]*/
  4299. r66warning(_sp,((T0*)ms66_151262));
  4300. }
  4301.  else if(r66a_keyword(C,((T0*)ms13_6510))){
  4302. {T252*n=malloc(sizeof(*n));
  4303. *n=M252;
  4304. r252make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4305. C->_last_base_type=(T0*)n;
  4306. }
  4307. }
  4308.  else if(r66a_keyword(C,((T0*)ms13_9936))){
  4309. {T254*n=malloc(sizeof(*n));
  4310. *n=M254;
  4311. r254make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4312. C->_last_base_type=(T0*)n;
  4313. }
  4314. }
  4315.  else if(r66a_keyword(C,((T0*)ms13_4818))){
  4316. {T255*n=malloc(sizeof(*n));
  4317. *n=M255;
  4318. r255make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4319. C->_last_base_type=(T0*)n;
  4320. }
  4321. }
  4322.  else if(r66a_keyword(C,((T0*)ms13_6748))){
  4323. {T256*n=malloc(sizeof(*n));
  4324. *n=M256;
  4325. r256make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4326. C->_last_base_type=(T0*)n;
  4327. }
  4328. }
  4329.  else if(r66a_keyword(C,((T0*)ms13_1256))){
  4330. {T257*n=malloc(sizeof(*n));
  4331. *n=M257;
  4332. r257make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4333. C->_last_base_type=(T0*)n;
  4334. }
  4335. }
  4336.  else if(r66a_keyword(C,((T0*)ms13_6881))){
  4337. {T258*n=malloc(sizeof(*n));
  4338. *n=M258;
  4339. r258make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4340. C->_last_base_type=(T0*)n;
  4341. }
  4342. }
  4343.  else if(r66a_keyword(C,((T0*)ms13_1208))){
  4344. {T259*n=malloc(sizeof(*n));
  4345. *n=M259;
  4346. r259make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4347. C->_last_base_type=(T0*)n;
  4348. }
  4349. }
  4350.  else if(r66a_keyword(C,((T0*)ms13_5046))){
  4351. {T260*n=malloc(sizeof(*n));
  4352. *n=M260;
  4353. r260make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4354. C->_last_base_type=(T0*)n;
  4355. }
  4356. }
  4357. else{
  4358. R=0;
  4359. }
  4360. /*FI]*/
  4361. return R;
  4362. }
  4363.  
  4364.  
  4365. void r66a_procedure_call(T66* C){
  4366. T0* _implicit_current=NULL;
  4367. T0* _sfn=NULL;
  4368. _sfn=r96to_simple_feature_name((T96*)(oBC66tmp_name));
  4369. {T181*n=malloc(sizeof(*n));
  4370. *n=M181;
  4371. /*[IRF3.3make*/((((T181*)(n)))->_start_position)=((((T135*)_sfn))->_start_position/*8*/);
  4372. /*]*/
  4373. _implicit_current=(T0*)n;
  4374. }
  4375. r66a_r10(C,1,_implicit_current,_sfn,r66a_actuals(C));
  4376. }
  4377.  
  4378.  
  4379. T0* r66pos(T2 a1,T2 a2){
  4380. T0* R=NULL;
  4381. {T69*n=malloc(sizeof(*n));
  4382. *n=M69;
  4383. r69make(n,a1,a2);
  4384. R=(T0*)n;
  4385. }
  4386. return R;
  4387. }
  4388.  
  4389.  
  4390. void r66show_nb(T2 a1,T0* a2){
  4391. /*[IF*/
  4392. if((a1)>(0)){
  4393. r35w_put_string(((T0*)ms12_3143));
  4394. r35w_put_integer(a1);
  4395. r35w_put_string(a2);
  4396. }
  4397. /*FI]*/
  4398. }
  4399. /*No:EIFFEL_PARSER.fz_error_stars*/
  4400. /*No:EIFFEL_PARSER.us_minus*/
  4401.  
  4402.  
  4403. T6 r66a_identifier(T66* C){
  4404. T6 R=0;
  4405. /*[IF*/
  4406. if((C)->_case_insensitive/*0*/){
  4407. R=r66a_identifier1(C);
  4408. }
  4409. else{
  4410. R=r66a_identifier2(C);
  4411. }
  4412. /*FI]*/
  4413. return R;
  4414. }
  4415. /*No:EIFFEL_PARSER.fz_else*/
  4416.  
  4417.  
  4418. T0* r66a_compound2(T66* C,T0* a1,T0* a2){
  4419. T0* R=NULL;
  4420. T0* _remainder=NULL;
  4421. T0* _first_one=NULL;
  4422. T0* _instruction=NULL;
  4423. T0* _hc=NULL;
  4424. _hc=r66get_comments(C);
  4425. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4426. /*[IRF3.6wcp*/{T66* C1=C;
  4427. T0* b1=((T0*)ms12_41475);
  4428. r66warning(r66current_position(C1),b1);
  4429. }/*]*/
  4430. C->_ok=r66skip1(C,'\73');
  4431. }
  4432. while (!((!(r66a_instruction(C)))||((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
  4433. _instruction=(C)->_last_instruction/*133*/;
  4434. /*[IF*/
  4435. if(((C)->_cc/*24*/)==('\50')){
  4436. /*[IRF3.6wcp*/{T66* C1=C;
  4437. T0* b1=((T0*)ms66_9410a);
  4438. r66warning(r66current_position(C1),b1);
  4439. }/*]*/
  4440. }
  4441. /*FI]*/
  4442. C->_ok=r66skip1(C,'\73');
  4443. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4444. /*[IRF3.6wcp*/{T66* C1=C;
  4445. T0* b1=((T0*)ms12_41475);
  4446. r66warning(r66current_position(C1),b1);
  4447. }/*]*/
  4448. C->_ok=r66skip1(C,'\73');
  4449. }
  4450. /*[IF*/
  4451. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  4452. _instruction=X148add_comment(_instruction,r66get_comments(C));
  4453. /*[IF*/
  4454. if((_first_one)==((void*)(NULL))){
  4455. _first_one=_instruction;
  4456. }
  4457. else{
  4458. /*[IF*/
  4459. if((_remainder)==((void*)(NULL))){
  4460. {T205*n=malloc(sizeof(*n));
  4461. *n=M205;
  4462. r205with_capacity(n,4);
  4463. _remainder=(T0*)n;
  4464. }
  4465. }
  4466. /*FI]*/
  4467. r205add_last(((T205*)_remainder),_instruction);
  4468. }
  4469. /*FI]*/
  4470. }
  4471. /*FI]*/
  4472. }
  4473. /*[IF*/
  4474. if(!(r66a_keyword(C,a2))){
  4475. /*[IRF3.6append*/{T0* b1=((T0*)ms66_12480);
  4476. r7append((T7*)(oBC67explanation),b1);
  4477. }/*]*/
  4478. /*[IRF3.6append*/{T0* b1=a1;
  4479. r7append((T7*)(oBC67explanation),b1);
  4480. }/*]*/
  4481. /*[IRF3.6append*/{T0* b1=((T0*)ms66_33345);
  4482. r7append((T7*)(oBC67explanation),b1);
  4483. }/*]*/
  4484. /*[IRF3.6append*/{T0* b1=a2;
  4485. r7append((T7*)(oBC67explanation),b1);
  4486. }/*]*/
  4487. r66fcp(C,((T0*)ms66_10120a));
  4488. }
  4489. /*FI]*/
  4490. /*[IF*/
  4491. if(((_hc)!=((void*)(NULL)))||((_first_one)!=((void*)(NULL)))){
  4492. {T204*n=malloc(sizeof(*n));
  4493. *n=M204;
  4494. r204make(n,_hc,_first_one,_remainder);
  4495. R=(T0*)n;
  4496. }
  4497. }
  4498. /*FI]*/
  4499. return R;
  4500. }
  4501. /*No:EIFFEL_PARSER.fz_deferred*/
  4502. /*No:EIFFEL_PARSER.fz_like*/
  4503.  
  4504.  
  4505. T6 r66a_loop(T66* C){
  4506. T6 R=0;
  4507. T0* _al=NULL;
  4508. T0* _hc=NULL;
  4509. T0* _lb=NULL;
  4510. T0* _ue=NULL;
  4511. T0* _vc=NULL;
  4512. T0* _ic=NULL;
  4513. T0* _i=NULL;
  4514. T0* _e_loop=NULL;
  4515. T2 _c2=0;
  4516. T2 _l2=0;
  4517. T2 _c1=0;
  4518. T2 _l1=0;
  4519. /*[IF*/
  4520. if(r66a_keyword(C,((T0*)ms12_1784))){
  4521. R=1;
  4522. _l1=(C)->_start_line/*169*/;
  4523. _c1=(C)->_start_column/*165*/;
  4524. _i=r66a_compound1(C);
  4525. /*[IF*/
  4526. if(r66a_keyword(C,((T0*)ms12_14427))){
  4527. _l2=(C)->_start_line/*169*/;
  4528. _c2=(C)->_start_column/*165*/;
  4529. _hc=r66get_comments(C);
  4530. _al=r66a_assertion(C);
  4531. /*[IF*/
  4532. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  4533. {T231*n=malloc(sizeof(*n));
  4534. *n=M231;
  4535. r231make(n,r66pos(_l2,_c2),_hc,_al);
  4536. _ic=(T0*)n;
  4537. }
  4538. }
  4539. /*FI]*/
  4540. }
  4541. /*FI]*/
  4542. /*[IF*/
  4543. if(r66a_keyword(C,((T0*)ms12_9506))){
  4544. /*[IF*/
  4545. if((r66a_tag_mark(C))&&(r66a_expression(C))){
  4546. {T233*n=malloc(sizeof(*n));
  4547. *n=M233;
  4548. r233make(n,(C)->_last_tag_mark/*161*/,(C)->_last_expression/*97*/,r66get_comments(C));
  4549. _vc=(T0*)n;
  4550. }
  4551. }
  4552.  else if(r66a_expression(C)){
  4553. {T234*n=malloc(sizeof(*n));
  4554. *n=M234;
  4555. r234make(n,(C)->_last_expression/*97*/,r66get_comments(C));
  4556. _vc=(T0*)n;
  4557. }
  4558. }
  4559. else{
  4560. /*[IRF3.6wcp*/{T66* C1=C;
  4561. T0* b1=((T0*)ms66_85956);
  4562. r66warning(r66current_position(C1),b1);
  4563. }/*]*/
  4564. }
  4565. /*FI]*/
  4566. }
  4567. /*FI]*/
  4568. /*[IF*/
  4569. if(r66a_keyword(C,((T0*)ms12_2855))){
  4570. /*[IF*/
  4571. if(r66a_expression(C)){
  4572. _ue=X53add_comment((C)->_last_expression/*97*/,r66get_comments(C));
  4573. }
  4574. else{
  4575. r66fcp(C,((T0*)ms66_78048));
  4576. _ue=(C)->_last_expression/*97*/;
  4577. }
  4578. /*FI]*/
  4579. }
  4580. else{
  4581. r66fcp(C,((T0*)ms66_83028));
  4582. _ue=(C)->_last_expression/*97*/;
  4583. }
  4584. /*FI]*/
  4585. /*[IF*/
  4586. if(((C)->_cc/*24*/)==('\73')){
  4587. /*[IRF3.6wcp*/{T66* C1=C;
  4588. T0* b1=((T0*)ms12_41475);
  4589. r66warning(r66current_position(C1),b1);
  4590. }/*]*/
  4591. C->_ok=r66skip1(C,'\73');
  4592. }
  4593. /*FI]*/
  4594. /*[IF*/
  4595. if(!(r66a_keyword(C,((T0*)ms12_1808)))){
  4596. /*[IRF3.6wcp*/{T66* C1=C;
  4597. T0* b1=((T0*)ms66_79128);
  4598. r66warning(r66current_position(C1),b1);
  4599. }/*]*/
  4600. }
  4601. /*FI]*/
  4602. _lb=r66a_compound2(C,((T0*)ms66_14202),((T0*)ms12_951));
  4603. {T232*n=malloc(sizeof(*n));
  4604. *n=M232;
  4605. r232make(n,r66pos(_l1,_c1),_i,_ic,_vc,_ue,_lb);
  4606. _e_loop=(T0*)n;
  4607. }
  4608. C->_last_instruction=_e_loop;
  4609. }
  4610. /*FI]*/
  4611. return R;
  4612. }
  4613.  
  4614.  
  4615. T6 r66a_base_class_name(T66* C){
  4616. T6 R=0;
  4617. T6 _do_warning=0;
  4618. T2 _state=0;
  4619. /*[IF*/
  4620. if(r3is_letter((C)->_cc/*24*/)){
  4621. /*[IF*/
  4622. if((((unsigned)((C)->_cc/*24*/))>=((unsigned)('a')))){
  4623. _do_warning=1;
  4624. C->_cc=r3to_upper((C)->_cc/*24*/);
  4625. }
  4626. /*FI]*/
  4627. r96initialize((T96*)(oBC66tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  4628. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  4629. r7extend((T7*)(oBC96tmp_string),b1);
  4630. }/*]*/
  4631. while (!((_state)>(0))) {
  4632. r66next_char(C);
  4633. {int z1=(C)->_cc/*24*/;
  4634.  
  4635. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  4636. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  4637. r7extend((T7*)(oBC96tmp_string),b1);
  4638. }/*]*/
  4639. }
  4640.  else 
  4641. if(((97<=z1)&&(z1<=122))){
  4642. _do_warning=1;
  4643. /*[IRF3.6extend*/{T3 b1=r3to_upper((C)->_cc/*24*/);
  4644. r7extend((T7*)(oBC96tmp_string),b1);
  4645. }/*]*/
  4646. }
  4647.  else{_state=1;
  4648. }}
  4649. }
  4650. /*[IF*/
  4651. if(r96isa_keyword()){
  4652. _state=/*(IRF4.9count*/((T7*)(oBC96tmp_string))->_count/*4*//*)*/;
  4653. while (!((_state)==(0))) {
  4654. _state=(_state)-(1);
  4655. r66prev_char(C);
  4656. }
  4657. }
  4658. else{
  4659. R=1;
  4660. r66skip_comments(C);
  4661. /*[IF*/
  4662. if(_do_warning){
  4663. r66warning(r96start_position((T96*)(oBC66tmp_name)),((T0*)ms66_116415));
  4664. }
  4665. /*FI]*/
  4666. C->_last_class_name=r96to_class_name((T96*)(oBC66tmp_name));
  4667. }
  4668. /*FI]*/
  4669. }
  4670. /*FI]*/
  4671. return R;
  4672. }
  4673.  
  4674.  
  4675. T6 r66a_manifest_constant(T66* C){
  4676. T6 R=0;
  4677. /*[IF*/
  4678. if(r66a_boolean_constant(C)){
  4679. C->_last_manifest_constant=(C)->_last_boolean_constant/*81*/;
  4680. R=1;
  4681. }
  4682.  else if(r66a_character_constant(C)){
  4683. C->_last_manifest_constant=(C)->_last_character_constant/*85*/;
  4684. R=1;
  4685. }
  4686.  else if(r66a_manifest_string(C)){
  4687. C->_last_manifest_constant=(C)->_last_manifest_string/*145*/;
  4688. R=1;
  4689. }
  4690.  else if(r66a_bit_constant(C)){
  4691. C->_last_manifest_constant=(C)->_last_bit_constant/*77*/;
  4692. R=1;
  4693. }
  4694.  else if(r66a_real_constant(C)){
  4695. C->_last_manifest_constant=(C)->_last_real_constant/*153*/;
  4696. R=1;
  4697. }
  4698.  else if(r66a_integer_constant(C)){
  4699. C->_last_manifest_constant=(C)->_last_integer_constant/*129*/;
  4700. R=1;
  4701. }
  4702. /*FI]*/
  4703. return R;
  4704. }
  4705.  
  4706.  
  4707. T6 r66a_identifier1(T66* C){
  4708. T6 R=0;
  4709. T2 _state=0;
  4710. /*[IF*/
  4711. if(r3is_letter((C)->_cc/*24*/)){
  4712. r96initialize((T96*)(oBC66tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  4713. /*[IRF3.6extend*/{T3 b1=r3to_lower((C)->_cc/*24*/);
  4714. r7extend((T7*)(oBC96tmp_string),b1);
  4715. }/*]*/
  4716. while (!((_state)>(0))) {
  4717. r66next_char(C);
  4718. {int z1=(C)->_cc/*24*/;
  4719.  
  4720. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  4721. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  4722. r7extend((T7*)(oBC96tmp_string),b1);
  4723. }/*]*/
  4724. }
  4725.  else 
  4726. if(((65<=z1)&&(z1<=90))){
  4727. /*[IRF3.6extend*/{T3 b1=r3to_lower((C)->_cc/*24*/);
  4728. r7extend((T7*)(oBC96tmp_string),b1);
  4729. }/*]*/
  4730. }
  4731.  else{_state=1;
  4732. }}
  4733. }
  4734. /*[IF*/
  4735. if(r96isa_keyword()){
  4736. _state=/*(IRF4.9count*/((T7*)(oBC96tmp_string))->_count/*4*//*)*/;
  4737. while (!((_state)==(0))) {
  4738. _state=(_state)-(1);
  4739. r66prev_char(C);
  4740. }
  4741. }
  4742. else{
  4743. R=1;
  4744. r66skip_comments(C);
  4745. }
  4746. /*FI]*/
  4747. }
  4748. /*FI]*/
  4749. return R;
  4750. }
  4751.  
  4752.  
  4753. void r66a_formal_arg_list(T66* C){
  4754. T2 _state=0;
  4755. T0* _list=NULL;
  4756. T0* _declaration=NULL;
  4757. T0* _name_list=NULL;
  4758. T0* _name=NULL;
  4759. T6 _started=0;
  4760. C->_arguments=NULL;
  4761. while (!((_state)>(5))) {
  4762. {int z1=_state;
  4763.  
  4764. if((0==z1)){
  4765. /*[IF*/
  4766. if(r66skip1(C,'\50')){
  4767. _started=1;
  4768. _state=1;
  4769. }
  4770. else{
  4771. _state=6;
  4772. }
  4773. /*FI]*/
  4774. }
  4775.  else 
  4776. if((1==z1)){
  4777. /*[IF*/
  4778. if(r66a_identifier(C)){
  4779. _name=r96to_argument_name1((T96*)(oBC66tmp_name));
  4780. _state=2;
  4781. }
  4782.  else if(r66skip1(C,'\51')){
  4783. _state=6;
  4784. }
  4785. else{
  4786. _state=7;
  4787. }
  4788. /*FI]*/
  4789. }
  4790.  else 
  4791. if((2==z1)){
  4792. /*[IF*/
  4793. if(r66skip1(C,'\72')){
  4794. /*[IF*/
  4795. if((_name_list)!=((void*)(NULL))){
  4796. r179add_last(((T179*)_name_list),_name);
  4797. _name=NULL;
  4798. }
  4799. /*FI]*/
  4800. _state=4;
  4801. }
  4802. else{
  4803. C->_ok=r66skip1(C,'\54');
  4804. /*[IF*/
  4805. if((_name_list)==((void*)(NULL))){
  4806. _name_list=se_ma179(1,
  4807. _name);
  4808. }
  4809. else{
  4810. r179add_last(((T179*)_name_list),_name);
  4811. }
  4812. /*FI]*/
  4813. _name=NULL;
  4814. _state=3;
  4815. }
  4816. /*FI]*/
  4817. }
  4818.  else 
  4819. if((3==z1)){
  4820. /*[IF*/
  4821. if(r66a_identifier(C)){
  4822. _name=r96to_argument_name1((T96*)(oBC66tmp_name));
  4823. _state=2;
  4824. }
  4825.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
  4826. /*[IRF3.6wcp*/{T66* C1=C;
  4827. T0* b1=((T0*)ms66_38712);
  4828. r66warning(r66current_position(C1),b1);
  4829. }/*]*/
  4830. C->_ok=(r66skip1(C,'\54'))||(r66skip1(C,'\73'));
  4831. }
  4832. else{
  4833. _state=7;
  4834. }
  4835. /*FI]*/
  4836. }
  4837.  else 
  4838. if((4==z1)){
  4839. /*[IF*/
  4840. if(r66a_type(C)){
  4841. /*[IF*/
  4842. if((_name_list)!=((void*)(NULL))){
  4843. {T296*n=malloc(sizeof(*n));
  4844. *n=M296;
  4845. r296make(n,_name_list,(C)->_last_type/*157*/);
  4846. _declaration=(T0*)n;
  4847. }
  4848. _name_list=NULL;
  4849. }
  4850. else{
  4851. {T299*n=malloc(sizeof(*n));
  4852. *n=M299;
  4853. r299make(n,_name,(C)->_last_type/*157*/);
  4854. _declaration=(T0*)n;
  4855. }
  4856. _name=NULL;
  4857. }
  4858. /*FI]*/
  4859. /*[IF*/
  4860. if((_list)==((void*)(NULL))){
  4861. _list=se_ma294(1,
  4862. _declaration);
  4863. }
  4864. else{
  4865. r294add_last(((T294*)_list),_declaration);
  4866. }
  4867. /*FI]*/
  4868. _declaration=NULL;
  4869. _state=5;
  4870. }
  4871. else{
  4872. _state=7;
  4873. }
  4874. /*FI]*/
  4875. }
  4876.  else{/*[IF*/
  4877. if(r66skip1(C,'\51')){
  4878. _state=6;
  4879. }
  4880.  else if(((C)->_cc/*24*/)==('\54')){
  4881. /*[IRF3.6wcp*/{T66* C1=C;
  4882. T0* b1=((T0*)ms66_29280aa);
  4883. r66warning(r66current_position(C1),b1);
  4884. }/*]*/
  4885. C->_ok=r66skip1(C,'\54');
  4886. _state=1;
  4887. }
  4888. else{
  4889. C->_ok=r66skip1(C,'\73');
  4890. _state=1;
  4891. }
  4892. /*FI]*/
  4893. }}
  4894. }
  4895. /*[IF*/
  4896. if((_state)==(7)){
  4897. r66fcp(C,((T0*)ms66_39050));
  4898. }
  4899.  else if(_started){
  4900. /*[IF*/
  4901. if((_list)==((void*)(NULL))){
  4902. /*[IRF3.6wcp*/{T66* C1=C;
  4903. T0* b1=((T0*)ms66_83028a);
  4904. r66warning(r66current_position(C1),b1);
  4905. }/*]*/
  4906. }
  4907. else{
  4908. {T175*n=malloc(sizeof(*n));
  4909. *n=M175;
  4910. r175make(n,_list);
  4911. C->_arguments=(T0*)n;
  4912. }
  4913. /*[IRF3.3set_arguments*/((((T186*)((T186*)(oBC66tmp_feature))))->_arguments)=((C)->_arguments/*49*/);
  4914. /*]*/
  4915. }
  4916. /*FI]*/
  4917. }
  4918. /*FI]*/
  4919. }
  4920.  
  4921.  
  4922. T6 r66a_check(T66* C){
  4923. T6 R=0;
  4924. T0* _al=NULL;
  4925. T0* _hc=NULL;
  4926. T0* _sp=NULL;
  4927. /*[IF*/
  4928. if(r66a_keyword(C,((T0*)ms12_2625))){
  4929. R=1;
  4930. {T69*n=malloc(sizeof(*n));
  4931. *n=M69;
  4932. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4933. _sp=(T0*)n;
  4934. }
  4935. _hc=r66get_comments(C);
  4936. _al=r66a_assertion(C);
  4937. /*[IF*/
  4938. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  4939. {T206*n=malloc(sizeof(*n));
  4940. *n=M206;
  4941. r206make(n,_sp,_hc,_al);
  4942. C->_last_instruction=(T0*)n;
  4943. }
  4944. }
  4945. else{
  4946. /*[IRF3.6wcp*/{T66* C1=C;
  4947. T0* b1=((T0*)ms66_64448);
  4948. r66warning(r66current_position(C1),b1);
  4949. }/*]*/
  4950. }
  4951. /*FI]*/
  4952. /*[IF*/
  4953. if(!(r66a_keyword(C,((T0*)ms12_951)))){
  4954. r66fcp(C,((T0*)ms66_142100));
  4955. }
  4956. /*FI]*/
  4957. }
  4958. /*FI]*/
  4959. return R;
  4960. }
  4961.  
  4962.  
  4963. void r66to_frozen_feature_name(T66* C){
  4964. {T301*n=malloc(sizeof(*n));
  4965. *n=M301;
  4966. /*[IRF3.3make*/((((T301*)(n)))->_feature_name)=((C)->_last_feature_name/*105*/);
  4967. /*]*/
  4968. C->_last_feature_name=(T0*)n;
  4969. }
  4970. }
  4971. /*No:EIFFEL_PARSER.us_boolean*/
  4972.  
  4973.  
  4974. T6 r66a_binary(T66* C,T0* a1){
  4975. T6 R=0;
  4976. R=1;
  4977. /*[IF*/
  4978. if(r66skip2(C,'\74','\75')){
  4979. {T125*n=malloc(sizeof(*n));
  4980. *n=M125;
  4981. r125make(n,((T0*)ms13_248),a1);
  4982. C->_last_binary=(T0*)n;
  4983. }
  4984. }
  4985.  else if(r66skip2(C,'\76','\75')){
  4986. {T125*n=malloc(sizeof(*n));
  4987. *n=M125;
  4988. r125make(n,((T0*)ms13_252),a1);
  4989. C->_last_binary=(T0*)n;
  4990. }
  4991. }
  4992.  else if(r66skip2(C,'\57','\57')){
  4993. {T125*n=malloc(sizeof(*n));
  4994. *n=M125;
  4995. r125make(n,((T0*)ms66_194),a1);
  4996. C->_last_binary=(T0*)n;
  4997. }
  4998. }
  4999.  else if(r66skip2(C,'\134','\134')){
  5000. {T125*n=malloc(sizeof(*n));
  5001. *n=M125;
  5002. r125make(n,((T0*)ms66_374),a1);
  5003. C->_last_binary=(T0*)n;
  5004. }
  5005. }
  5006.  else if(r66skip1(C,'\53')){
  5007. {T125*n=malloc(sizeof(*n));
  5008. *n=M125;
  5009. r125make(n,((T0*)ms13_44),a1);
  5010. C->_last_binary=(T0*)n;
  5011. }
  5012. }
  5013.  else if(r66skip1(C,'\55')){
  5014. {T125*n=malloc(sizeof(*n));
  5015. *n=M125;
  5016. r125make(n,((T0*)ms13_46),a1);
  5017. C->_last_binary=(T0*)n;
  5018. }
  5019. }
  5020.  else if(r66skip1(C,'\52')){
  5021. {T125*n=malloc(sizeof(*n));
  5022. *n=M125;
  5023. r125make(n,((T0*)ms13_43),a1);
  5024. C->_last_binary=(T0*)n;
  5025. }
  5026. }
  5027.  else if(r66skip1(C,'\57')){
  5028. {T125*n=malloc(sizeof(*n));
  5029. *n=M125;
  5030. r125make(n,((T0*)ms13_48),a1);
  5031. C->_last_binary=(T0*)n;
  5032. }
  5033. }
  5034.  else if(r66skip1(C,'\76')){
  5035. {T125*n=malloc(sizeof(*n));
  5036. *n=M125;
  5037. r125make(n,((T0*)ms13_63),a1);
  5038. C->_last_binary=(T0*)n;
  5039. }
  5040. }
  5041.  else if(r66skip1(C,'\74')){
  5042. {T125*n=malloc(sizeof(*n));
  5043. *n=M125;
  5044. r125make(n,((T0*)ms13_61),a1);
  5045. C->_last_binary=(T0*)n;
  5046. }
  5047. }
  5048.  else if(r66skip1(C,'\136')){
  5049. {T125*n=malloc(sizeof(*n));
  5050. *n=M125;
  5051. r125make(n,((T0*)ms66_95),a1);
  5052. C->_last_binary=(T0*)n;
  5053. }
  5054. }
  5055.  else if(r66a_keyword(C,((T0*)ms13_1053a))){
  5056. {T125*n=malloc(sizeof(*n));
  5057. *n=M125;
  5058. r125make(n,((T0*)ms13_1053a),a1);
  5059. C->_last_binary=(T0*)n;
  5060. }
  5061. }
  5062.  else if(r66a_keyword(C,((T0*)ms13_9513))){
  5063. {T125*n=malloc(sizeof(*n));
  5064. *n=M125;
  5065. r125make(n,((T0*)ms13_9513),a1);
  5066. C->_last_binary=(T0*)n;
  5067. }
  5068. }
  5069.  else if(r66a_keyword(C,((T0*)ms13_939))){
  5070. /*[IF*/
  5071. if(r66a_keyword(C,((T0*)ms12_1764))){
  5072. {T125*n=malloc(sizeof(*n));
  5073. *n=M125;
  5074. r125make(n,((T0*)ms13_10800),a1);
  5075. C->_last_binary=(T0*)n;
  5076. }
  5077. }
  5078. else{
  5079. {T125*n=malloc(sizeof(*n));
  5080. *n=M125;
  5081. r125make(n,((T0*)ms13_939),a1);
  5082. C->_last_binary=(T0*)n;
  5083. }
  5084. }
  5085. /*FI]*/
  5086. }
  5087.  else if(r66a_keyword(C,((T0*)ms13_456))){
  5088. /*[IF*/
  5089. if(r66a_keyword(C,((T0*)ms12_1740))){
  5090. {T125*n=malloc(sizeof(*n));
  5091. *n=M125;
  5092. r125make(n,((T0*)ms13_8316),a1);
  5093. C->_last_binary=(T0*)n;
  5094. }
  5095. }
  5096. else{
  5097. {T125*n=malloc(sizeof(*n));
  5098. *n=M125;
  5099. r125make(n,((T0*)ms13_456),a1);
  5100. C->_last_binary=(T0*)n;
  5101. }
  5102. }
  5103. /*FI]*/
  5104. }
  5105. else{
  5106. C->_last_binary=NULL;
  5107. R=0;
  5108. }
  5109. /*FI]*/
  5110. return R;
  5111. }
  5112. /*No:EIFFEL_PARSER.fz_once*/
  5113. /*No:EIFFEL_PARSER.fz_if*/
  5114. /*No:EIFFEL_PARSER.column*/
  5115.  
  5116.  
  5117. void r66a_new_export_list(T66* C){
  5118. T2 _state=0;
  5119. T0* _new_export_item=NULL;
  5120. T0* _items=NULL;
  5121. T0* _clients=NULL;
  5122. T0* _sp=NULL;
  5123. T0* _export_list=NULL;
  5124. /*[IF*/
  5125. if(r66a_keyword(C,((T0*)ms12_7614))){
  5126. {T69*n=malloc(sizeof(*n));
  5127. *n=M69;
  5128. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5129. _sp=(T0*)n;
  5130. }
  5131. while (!((_state)>(3))) {
  5132. {int z1=_state;
  5133.  
  5134. if((0==z1)){
  5135. /*[IF*/
  5136. if(((C)->_cc/*24*/)==('\173')){
  5137. _clients=r66a_clients(C);
  5138. _state=1;
  5139. }
  5140.  else if(((C)->_cc/*24*/)==('\73')){
  5141. /*[IRF3.6wcp*/{T66* C1=C;
  5142. T0* b1=((T0*)ms12_41475);
  5143. r66warning(r66current_position(C1),b1);
  5144. }/*]*/
  5145. C->_ok=r66skip1(C,'\73');
  5146. }
  5147. else{
  5148. /*[IF*/
  5149. if((_items)!=((void*)(NULL))){
  5150. {T303*n=malloc(sizeof(*n));
  5151. *n=M303;
  5152. r303make(n,_sp,_items);
  5153. _export_list=(T0*)n;
  5154. }
  5155. /*[IRF3.3set_export*/((((T56*)((T56*)((C)->_last_parent/*149*/))))->_export_list)=(_export_list);
  5156. /*]*/
  5157. }
  5158. /*FI]*/
  5159. _state=4;
  5160. }
  5161. /*FI]*/
  5162. }
  5163.  else 
  5164. if((1==z1)){
  5165. /*[IF*/
  5166. if(r66a_keyword(C,((T0*)ms12_957a))){
  5167. {T302*n=malloc(sizeof(*n));
  5168. *n=M302;
  5169. r302make_all(n,_clients);
  5170. _new_export_item=(T0*)n;
  5171. }
  5172. /*[IF*/
  5173. if((_items)==((void*)(NULL))){
  5174. _items=se_ma304(1,
  5175. _new_export_item);
  5176. }
  5177. else{
  5178. r304add_last(((T304*)_items),_new_export_item);
  5179. }
  5180. /*FI]*/
  5181. _state=2;
  5182. }
  5183. else{
  5184. /*[IF*/
  5185. if(r66a_feature_name_list(C)){
  5186. {T302*n=malloc(sizeof(*n));
  5187. *n=M302;
  5188. r302make(n,_clients,(C)->_last_feature_name_list/*109*/);
  5189. _new_export_item=(T0*)n;
  5190. }
  5191. /*[IF*/
  5192. if((_items)==((void*)(NULL))){
  5193. _items=se_ma304(1,
  5194. _new_export_item);
  5195. }
  5196. else{
  5197. r304add_last(((T304*)_items),_new_export_item);
  5198. }
  5199. /*FI]*/
  5200. _state=2;
  5201. }
  5202. else{
  5203. _state=3;
  5204. }
  5205. /*FI]*/
  5206. }
  5207. /*FI]*/
  5208. }
  5209.  else 
  5210. if((2==z1)){
  5211. /*[IF*/
  5212. if(r66skip1(C,'\73')){
  5213. _state=0;
  5214. }
  5215.  else if(((C)->_cc/*24*/)==('\173')){
  5216. /*[IRF3.6wcp*/{T66* C1=C;
  5217. T0* b1=((T0*)ms66_9410a);
  5218. r66warning(r66current_position(C1),b1);
  5219. }/*]*/
  5220. _state=0;
  5221. }
  5222. else{
  5223. /*[IF*/
  5224. if((_items)!=((void*)(NULL))){
  5225. {T303*n=malloc(sizeof(*n));
  5226. *n=M303;
  5227. r303make(n,_sp,_items);
  5228. _export_list=(T0*)n;
  5229. }
  5230. /*[IRF3.3set_export*/((((T56*)((T56*)((C)->_last_parent/*149*/))))->_export_list)=(_export_list);
  5231. /*]*/
  5232. }
  5233. /*FI]*/
  5234. _state=4;
  5235. }
  5236. /*FI]*/
  5237. }
  5238.  else{r66fcp(C,((T0*)ms66_20247));
  5239. _state=4;
  5240. }}
  5241. }
  5242. }
  5243. /*FI]*/
  5244. }
  5245.  
  5246.  
  5247. void r66a_creation_clause(T66* C,T0* a1){
  5248. T0* _creation_clause=NULL;
  5249. T0* _comments=NULL;
  5250. T0* _clients=NULL;
  5251. _clients=r66a_clients(C);
  5252. _comments=r66get_comments(C);
  5253. /*[IF*/
  5254. if(r66a_feature_name_list(C)){
  5255. }
  5256. /*FI]*/
  5257. {T74*n=malloc(sizeof(*n));
  5258. *n=M74;
  5259. r74make(n,a1,_clients,_comments,(C)->_last_feature_name_list/*109*/);
  5260. _creation_clause=(T0*)n;
  5261. }
  5262. r22add_creation_clause((T22*)((C)->_last_base_class/*65*/),_creation_clause);
  5263. }
  5264. /*No:EIFFEL_PARSER.show_nb_errors*/
  5265. /*No:EIFFEL_PARSER.last_integer_constant*/
  5266. /*No:EIFFEL_PARSER.last_boolean_constant*/
  5267.  
  5268.  
  5269. T6 r66a_integer_constant(T66* C){
  5270. T6 R=0;
  5271. T2 _c=0;
  5272. T2 _l=0;
  5273. /*[IF*/
  5274. if(r66skip1(C,'\53')){
  5275. _l=(C)->_start_line/*169*/;
  5276. _c=(C)->_start_column/*165*/;
  5277. /*[IF*/
  5278. if(r66a_integer(C)){
  5279. r69set_line_column((T69*)(((T162*)((C)->_last_integer_constant/*129*/))->_start_position/*4*/),_l,_c);
  5280. R=1;
  5281. }
  5282. else{
  5283. r66fcp(C,((T0*)ms12_45846));
  5284. }
  5285. /*FI]*/
  5286. }
  5287.  else if(r66skip1(C,'\55')){
  5288. _l=(C)->_start_line/*169*/;
  5289. _c=(C)->_start_column/*165*/;
  5290. /*[IF*/
  5291. if(r66a_integer(C)){
  5292. r69set_line_column((T69*)(((T162*)((C)->_last_integer_constant/*129*/))->_start_position/*4*/),_l,_c);
  5293. r162unary_minus((T162*)((C)->_last_integer_constant/*129*/));
  5294. R=1;
  5295. }
  5296. else{
  5297. r66fcp(C,((T0*)ms12_45846));
  5298. }
  5299. /*FI]*/
  5300. }
  5301. else{
  5302. R=r66a_integer(C);
  5303. }
  5304. /*FI]*/
  5305. return R;
  5306. }
  5307. /*No:EIFFEL_PARSER.fz_do*/
  5308. /*No:EIFFEL_PARSER.fz_as*/
  5309. /*No:EIFFEL_PARSER.us_ge*/
  5310. /*No:EIFFEL_PARSER.go_back*/
  5311.  
  5312.  
  5313. T6 r66a_prefix(T66* C){
  5314. T6 R=0;
  5315. /*[IF*/
  5316. if(r66a_keyword(C,((T0*)ms12_7614a))){
  5317. R=1;
  5318. /*[IF*/
  5319. if(((C)->_cc/*24*/)==('\42')){
  5320. r66next_char(C);
  5321. }
  5322. else{
  5323. /*[IRF3.6wcp*/{T66* C1=C;
  5324. T0* b1=((T0*)ms66_89232);
  5325. r66warning(r66current_position(C1),b1);
  5326. }/*]*/
  5327. }
  5328. /*FI]*/
  5329. /*[IF*/
  5330. if(r66a_unary(C)){
  5331. }
  5332.  else if(r66a_free_operator(C)){
  5333. C->_last_prefix=r96to_prefix_name((T96*)(oBC66tmp_name));
  5334. }
  5335. else{
  5336. r66fcp(C,((T0*)ms66_56910));
  5337. }
  5338. /*FI]*/
  5339. /*[IF*/
  5340. if(!(r66skip1(C,'\42'))){
  5341. /*[IRF3.6wcp*/{T66* C1=C;
  5342. T0* b1=((T0*)ms66_38352);
  5343. r66warning(r66current_position(C1),b1);
  5344. }/*]*/
  5345. }
  5346. /*FI]*/
  5347. }
  5348. /*FI]*/
  5349. return R;
  5350. }
  5351. /*No:EIFFEL_PARSER.last_feature_declaration*/
  5352. /*No:EIFFEL_PARSER.us_none*/
  5353. /*No:EIFFEL_PARSER.start_column*/
  5354. /*No:EIFFEL_PARSER.us_string*/
  5355. /*No:EIFFEL_PARSER.fz_se*/
  5356. /*No:EIFFEL_PARSER.fz_true*/
  5357. /*No:EIFFEL_PARSER.us_le*/
  5358. /*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/
  5359. /*No:EIFFEL_PARSER.fz_c_withoutcurrent*/
  5360.  
  5361.  
  5362. void r66a_local_var_list(T66* C){
  5363. T2 _state=0;
  5364. T2 _rank=0;
  5365. T0* _list=NULL;
  5366. T0* _declaration=NULL;
  5367. T0* _name_list=NULL;
  5368. T0* _name=NULL;
  5369. while (!((_state)>(4))) {
  5370. {int z1=_state;
  5371.  
  5372. if((0==z1)){
  5373. /*[IF*/
  5374. if(r66a_identifier(C)){
  5375. _name=r96to_local_name1((T96*)(oBC66tmp_name));
  5376. _state=1;
  5377. /*[IF*/
  5378. if(((C)->_arguments/*49*/)!=((void*)(NULL))){
  5379. _rank=r175rank_of((T175*)((C)->_arguments/*49*/),(((T171*)_name))->_to_string/*8*/);
  5380. /*[IF*/
  5381. if((_rank)>(0)){
  5382. r67add_position((((T171*)_name))->_start_position/*4*/);
  5383. r67add_position(((T178*)(/*(IRF4.6name*/r179item(((T179*)(((T175*)((C)->_arguments/*49*/))->_flat_list/*8*/)),_rank)/*)*/))->_start_position/*4*/);
  5384. r67error((T67*)(oBC11eh),((T0*)ms66_112815));
  5385. }
  5386. /*FI]*/
  5387. }
  5388. /*FI]*/
  5389. }
  5390.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
  5391. /*[IRF3.6wcp*/{T66* C1=C;
  5392. T0* b1=((T0*)ms66_38712);
  5393. r66warning(r66current_position(C1),b1);
  5394. }/*]*/
  5395. C->_ok=(r66skip1(C,'\54'))||(r66skip1(C,'\73'));
  5396. }
  5397. else{
  5398. _state=5;
  5399. }
  5400. /*FI]*/
  5401. }
  5402.  else 
  5403. if((1==z1)){
  5404. /*[IF*/
  5405. if(r66skip1(C,'\72')){
  5406. /*[IF*/
  5407. if((_name_list)!=((void*)(NULL))){
  5408. r173add_last(((T173*)_name_list),_name);
  5409. _name=NULL;
  5410. }
  5411. /*FI]*/
  5412. _state=3;
  5413. }
  5414. else{
  5415. /*[IF*/
  5416. if(((C)->_cc/*24*/)==('\73')){
  5417. /*[IRF3.6wcp*/{T66* C1=C;
  5418. T0* b1=((T0*)ms66_29280);
  5419. r66warning(r66current_position(C1),b1);
  5420. }/*]*/
  5421. C->_ok=r66skip1(C,'\73');
  5422. }
  5423. else{
  5424. C->_ok=r66skip1(C,'\54');
  5425. }
  5426. /*FI]*/
  5427. /*[IF*/
  5428. if((_name_list)==((void*)(NULL))){
  5429. _name_list=se_ma173(1,
  5430. _name);
  5431. }
  5432. else{
  5433. r173add_last(((T173*)_name_list),_name);
  5434. }
  5435. /*FI]*/
  5436. _name=NULL;
  5437. _state=2;
  5438. }
  5439. /*FI]*/
  5440. }
  5441.  else 
  5442. if((2==z1)){
  5443. /*[IF*/
  5444. if(r66a_identifier(C)){
  5445. _name=r96to_local_name1((T96*)(oBC66tmp_name));
  5446. _state=1;
  5447. /*[IF*/
  5448. if(((C)->_arguments/*49*/)!=((void*)(NULL))){
  5449. _rank=r175rank_of((T175*)((C)->_arguments/*49*/),(((T171*)_name))->_to_string/*8*/);
  5450. /*[IF*/
  5451. if((_rank)>(0)){
  5452. r67add_position((((T171*)_name))->_start_position/*4*/);
  5453. r67add_position(((T178*)(/*(IRF4.6name*/r179item(((T179*)(((T175*)((C)->_arguments/*49*/))->_flat_list/*8*/)),_rank)/*)*/))->_start_position/*4*/);
  5454. r67error((T67*)(oBC11eh),((T0*)ms66_112815a));
  5455. }
  5456. /*FI]*/
  5457. }
  5458. /*FI]*/
  5459. }
  5460.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
  5461. /*[IRF3.6wcp*/{T66* C1=C;
  5462. T0* b1=((T0*)ms66_38712);
  5463. r66warning(r66current_position(C1),b1);
  5464. }/*]*/
  5465. C->_ok=(r66skip1(C,'\54'))||(r66skip1(C,'\73'));
  5466. }
  5467. else{
  5468. _state=6;
  5469. }
  5470. /*FI]*/
  5471. }
  5472.  else 
  5473. if((3==z1)){
  5474. /*[IF*/
  5475. if(r66a_type(C)){
  5476. /*[IF*/
  5477. if((_name_list)!=((void*)(NULL))){
  5478. {T296*n=malloc(sizeof(*n));
  5479. *n=M296;
  5480. r296make(n,_name_list,(C)->_last_type/*157*/);
  5481. _declaration=(T0*)n;
  5482. }
  5483. _name_list=NULL;
  5484. }
  5485. else{
  5486. {T299*n=malloc(sizeof(*n));
  5487. *n=M299;
  5488. r299make(n,_name,(C)->_last_type/*157*/);
  5489. _declaration=(T0*)n;
  5490. }
  5491. _name=NULL;
  5492. }
  5493. /*FI]*/
  5494. /*[IF*/
  5495. if((_list)==((void*)(NULL))){
  5496. _list=se_ma294(1,
  5497. _declaration);
  5498. }
  5499. else{
  5500. r294add_last(((T294*)_list),_declaration);
  5501. }
  5502. /*FI]*/
  5503. _state=4;
  5504. }
  5505. else{
  5506. _state=6;
  5507. }
  5508. /*FI]*/
  5509. }
  5510.  else{/*[IF*/
  5511. if(((C)->_cc/*24*/)==('\54')){
  5512. /*[IRF3.6wcp*/{T66* C1=C;
  5513. T0* b1=((T0*)ms66_29280a);
  5514. r66warning(r66current_position(C1),b1);
  5515. }/*]*/
  5516. C->_ok=r66skip1(C,'\54');
  5517. _state=0;
  5518. }
  5519. else{
  5520. C->_ok=r66skip1(C,'\73');
  5521. _state=0;
  5522. }
  5523. /*FI]*/
  5524. }}
  5525. }
  5526. /*[IF*/
  5527. if((_state)==(6)){
  5528. r66fcp(C,((T0*)ms66_36528));
  5529. }
  5530.  else if((_list)!=((void*)(NULL))){
  5531. {T166*n=malloc(sizeof(*n));
  5532. *n=M166;
  5533. /*[IRF3.6make*/{T166* C1=n;
  5534. T0* b1=_list;
  5535. r166declaration_list_make(C1,b1);
  5536. }/*]*/
  5537. C->_local_vars=(T0*)n;
  5538. }
  5539. /*[IRF3.3set_local_vars*/((((T186*)((T186*)(oBC66tmp_feature))))->_local_vars)=((C)->_local_vars/*53*/);
  5540. /*]*/
  5541. }
  5542. /*FI]*/
  5543. }
  5544. /*No:EIFFEL_PARSER.fz_is*/
  5545.  
  5546.  
  5547. T6 r66a_precursor(T66* C,T6 a1){
  5548. T6 R=0;
  5549. T0* _args=NULL;
  5550. T0* _parent=NULL;
  5551. T0* _sp=NULL;
  5552. /*[IF*/
  5553. if(r66skip1(C,'\173')){
  5554. R=1;
  5555. {T69*n=malloc(sizeof(*n));
  5556. *n=M69;
  5557. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5558. _sp=(T0*)n;
  5559. }
  5560. /*[IF*/
  5561. if(r66skip1(C,'\173')){
  5562. r66warning(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms66_104490a));
  5563. }
  5564. /*FI]*/
  5565. /*[IF*/
  5566. if(r66a_base_class_name(C)){
  5567. _parent=(C)->_last_class_name/*89*/;
  5568. }
  5569. /*FI]*/
  5570. /*[IF*/
  5571. if(!(r66skip1(C,'\175'))){
  5572. r66fcp(C,((T0*)ms66_202947));
  5573. }
  5574. /*FI]*/
  5575. /*[IF*/
  5576. if(r66skip1(C,'\175')){
  5577. r66warning(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms66_104490));
  5578. }
  5579. /*FI]*/
  5580. }
  5581. /*FI]*/
  5582. /*[IF*/
  5583. if(r66a_keyword(C,((T0*)ms13_13968))){
  5584. R=1;
  5585. /*[IF*/
  5586. if((_sp)==((void*)(NULL))){
  5587. {T69*n=malloc(sizeof(*n));
  5588. *n=M69;
  5589. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5590. _sp=(T0*)n;
  5591. }
  5592. }
  5593. /*FI]*/
  5594. _args=r66a_actuals(C);
  5595. }
  5596.  else if((_sp)!=((void*)(NULL))){
  5597. r66fcp(C,((T0*)ms66_63936));
  5598. }
  5599. /*FI]*/
  5600. /*[IF*/
  5601. if(R){
  5602. /*[IF*/
  5603. if(r66skip1unless2(C,'\56','\56')){
  5604. {T163*n=malloc(sizeof(*n));
  5605. *n=M163;
  5606. r163make(n,_sp,_parent,_args);
  5607. C->_last_expression=(T0*)n;
  5608. }
  5609. r66a_after_a_dot(C,a1,(C)->_last_expression/*97*/);
  5610. }
  5611.  else if(a1){
  5612. {T165*n=malloc(sizeof(*n));
  5613. *n=M165;
  5614. r165make(n,_sp,_parent,_args);
  5615. C->_last_instruction=(T0*)n;
  5616. }
  5617. }
  5618. else{
  5619. {T163*n=malloc(sizeof(*n));
  5620. *n=M163;
  5621. r163make(n,_sp,_parent,_args);
  5622. C->_last_expression=(T0*)n;
  5623. }
  5624. }
  5625. /*FI]*/
  5626. }
  5627. /*FI]*/
  5628. return R;
  5629. }
  5630. /*No:EIFFEL_PARSER.inside_once_function*/
  5631. /*No:EIFFEL_PARSER.us_neq*/
  5632. /*No:EIFFEL_PARSER.us_eq*/
  5633.  
  5634.  
  5635. T6 r66a_character_constant(T66* C){
  5636. T6 R=0;
  5637. T3 _value=0;
  5638. T2 _printing_mode=0;
  5639. T2 _state=0;
  5640. T0* _sp=NULL;
  5641. /*[IF*/
  5642. if(((C)->_cc/*24*/)==('\47')){
  5643. {T69*n=malloc(sizeof(*n));
  5644. *n=M69;
  5645. r69make(n,(C)->_line/*16*/,(C)->_column/*12*/);
  5646. _sp=(T0*)n;
  5647. }
  5648. R=1;
  5649. while (!((_state)>(2))) {
  5650. r66next_char(C);
  5651. {int z1=_state;
  5652.  
  5653. if((0==z1)){
  5654. {int z2=(C)->_cc/*24*/;
  5655.  
  5656. if((37==z2)){
  5657. _state=1;
  5658. }
  5659.  else 
  5660. if((39==z2)){
  5661. r66fcp(C,((T0*)ms66_33741));
  5662. _state=2;
  5663. }
  5664.  else{_value=(C)->_cc/*24*/;
  5665. _printing_mode=0;
  5666. _state=2;
  5667. }}
  5668. }
  5669.  else 
  5670. if((1==z1)){
  5671. _printing_mode=1;
  5672. _state=2;
  5673. {int z2=(C)->_cc/*24*/;
  5674.  
  5675. if((65==z2)){
  5676. _value='\100';
  5677. }
  5678.  else 
  5679. if((66==z2)){
  5680. _value='\10';
  5681. }
  5682.  else 
  5683. if((67==z2)){
  5684. _value='\136';
  5685. }
  5686.  else 
  5687. if((68==z2)){
  5688. _value='\44';
  5689. }
  5690.  else 
  5691. if((70==z2)){
  5692. _value='\14';
  5693. }
  5694.  else 
  5695. if((72==z2)){
  5696. _value='\134';
  5697. }
  5698.  else 
  5699. if((76==z2)){
  5700. _value='\176';
  5701. }
  5702.  else 
  5703. if((78==z2)){
  5704. _value='\n';
  5705. }
  5706.  else 
  5707. if((81==z2)){
  5708. _value='\140';
  5709. }
  5710.  else 
  5711. if((82==z2)){
  5712. _value='\15';
  5713. }
  5714.  else 
  5715. if((83==z2)){
  5716. _value='\43';
  5717. }
  5718.  else 
  5719. if((84==z2)){
  5720. _value='\11';
  5721. }
  5722.  else 
  5723. if((85==z2)){
  5724. _value='\0';
  5725. }
  5726.  else 
  5727. if((86==z2)){
  5728. _value='\174';
  5729. }
  5730.  else 
  5731. if((37==z2)){
  5732. _value='\45';
  5733. }
  5734.  else 
  5735. if((39==z2)){
  5736. _value='\47';
  5737. }
  5738.  else 
  5739. if((34==z2)){
  5740. _value='\42';
  5741. }
  5742.  else 
  5743. if((40==z2)){
  5744. _value='\133';
  5745. }
  5746.  else 
  5747. if((41==z2)){
  5748. _value='\135';
  5749. }
  5750.  else 
  5751. if((60==z2)){
  5752. _value='\173';
  5753. }
  5754.  else 
  5755. if((62==z2)){
  5756. _value='\175';
  5757. }
  5758.  else 
  5759. if((47==z2)){
  5760. r66a_ascii_code(C);
  5761. _value=((T3)((C)->_last_ascii_code/*61*/));
  5762. _printing_mode=2;
  5763. }
  5764.  else{r66fcp(C,((T0*)ms66_45084));
  5765. }}
  5766. }
  5767.  else{_state=3;
  5768. {int z2=(C)->_cc/*24*/;
  5769.  
  5770. if((39==z2)){
  5771. }
  5772.  else{r66fcp(C,((T0*)ms66_33741));
  5773. }}
  5774. r66next_char(C);
  5775. r66skip_comments(C);
  5776. }}
  5777. }
  5778. {T157*n=malloc(sizeof(*n));
  5779. *n=M157;
  5780. r157make(n,_sp,_value,_printing_mode);
  5781. C->_last_character_constant=(T0*)n;
  5782. }
  5783. }
  5784. /*FI]*/
  5785. return R;
  5786. }
  5787. /*No:EIFFEL_PARSER.fatal_error*/
  5788.  
  5789.  
  5790. T6 r66a_free_operator(T66* C){
  5791. T6 R=0;
  5792. /*[IF*/
  5793. if((((((C)->_cc/*24*/)==('\100'))||(((C)->_cc/*24*/)==('\43')))||(((C)->_cc/*24*/)==('\174')))||(((C)->_cc/*24*/)==('\46'))){
  5794. R=1;
  5795. r96initialize((T96*)(oBC66tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  5796. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5797. r7extend((T7*)(oBC96tmp_string),b1);
  5798. }/*]*/
  5799. r66next_char(C);
  5800. while (!((((((C)->_cc/*24*/)==('\n'))||(((C)->_cc/*24*/)==('\40')))||(((C)->_cc/*24*/)==('\11')))||(((C)->_cc/*24*/)==('\42')))) {
  5801. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5802. r7extend((T7*)(oBC96tmp_string),b1);
  5803. }/*]*/
  5804. r66next_char(C);
  5805. }
  5806. r66skip_comments(C);
  5807. }
  5808. /*FI]*/
  5809. return R;
  5810. }
  5811. /*No:EIFFEL_PARSER.em10*/
  5812. /*No:EIFFEL_PARSER.us_gt*/
  5813. /*No:EIFFEL_PARSER.em11*/
  5814. /*No:EIFFEL_PARSER.em20*/
  5815. /*No:EIFFEL_PARSER.em12*/
  5816. /*No:EIFFEL_PARSER.em13*/
  5817. /*No:EIFFEL_PARSER.fz_c_withcurrent*/
  5818.  
  5819.  
  5820. void r66a_then_part_list(T66* C,T0* a1){
  5821. /*[IF*/
  5822. if(!(r66a_then_part(C,a1))){
  5823. r66fcp(C,((T0*)ms66_28035));
  5824. }
  5825. /*FI]*/
  5826. while (!(!(r66a_keyword(C,((T0*)ms12_6942))))) {
  5827. /*[IF*/
  5828. if(!(r66a_then_part(C,a1))){
  5829. r66fcp(C,((T0*)ms66_37875));
  5830. }
  5831. /*FI]*/
  5832. }
  5833. }
  5834.  
  5835.  
  5836. void r66warning(T0* a1,T0* a2){
  5837. r67add_position(a1);
  5838. r67warning((T67*)(oBC11eh),a2);
  5839. }
  5840. /*No:EIFFEL_PARSER.em15*/
  5841. /*No:EIFFEL_PARSER.em16*/
  5842. /*No:EIFFEL_PARSER.us_lt*/
  5843.  
  5844.  
  5845. T6 r66a_identifier2(T66* C){
  5846. T6 R=0;
  5847. T6 _do_warning=0;
  5848. T2 _state=0;
  5849. /*[IF*/
  5850. if(r3is_letter((C)->_cc/*24*/)){
  5851. r96initialize((T96*)(oBC66tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  5852. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5853. r7extend((T7*)(oBC96tmp_string),b1);
  5854. }/*]*/
  5855. while (!((_state)>(0))) {
  5856. r66next_char(C);
  5857. {int z1=(C)->_cc/*24*/;
  5858.  
  5859. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  5860. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5861. r7extend((T7*)(oBC96tmp_string),b1);
  5862. }/*]*/
  5863. }
  5864.  else 
  5865. if(((65<=z1)&&(z1<=90))){
  5866. _do_warning=1;
  5867. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5868. r7extend((T7*)(oBC96tmp_string),b1);
  5869. }/*]*/
  5870. }
  5871.  else{_state=1;
  5872. }}
  5873. }
  5874. /*[IF*/
  5875. if(r96isa_keyword()){
  5876. _state=/*(IRF4.9count*/((T7*)(oBC96tmp_string))->_count/*4*//*)*/;
  5877. while (!((_state)==(0))) {
  5878. _state=(_state)-(1);
  5879. r66prev_char(C);
  5880. }
  5881. }
  5882. else{
  5883. R=1;
  5884. r66skip_comments(C);
  5885. /*[IF*/
  5886. if(_do_warning){
  5887. r66warning(r96start_position((T96*)(oBC66tmp_name)),((T0*)ms66_116325));
  5888. }
  5889. /*FI]*/
  5890. }
  5891. /*FI]*/
  5892. }
  5893. /*FI]*/
  5894. return R;
  5895. }
  5896. /*No:EIFFEL_PARSER.current_line*/
  5897. /*No:EIFFEL_PARSER.em17*/
  5898. /*No:EIFFEL_PARSER.fz_obsolete*/
  5899. /*No:EIFFEL_PARSER.us_or*/
  5900. /*No:EIFFEL_PARSER.em18*/
  5901. /*No:EIFFEL_PARSER.us_bit*/
  5902. /*No:EIFFEL_PARSER.em19*/
  5903.  
  5904.  
  5905. void r66error(T0* a1,T0* a2){
  5906. r67add_position(a1);
  5907. r67error((T67*)(oBC11eh),a2);
  5908. }
  5909. /*No:EIFFEL_PARSER.fz_expanded*/
  5910. /*No:EIFFEL_PARSER.fz_infix*/
  5911. /*No:EIFFEL_PARSER.last_base_type*/
  5912. /*No:EIFFEL_PARSER.current_class_name*/
  5913. /*No:EIFFEL_PARSER.last_real_constant*/
  5914. /*No:EIFFEL_PARSER.last_bit_constant*/
  5915.  
  5916.  
  5917. T0* r66to_call(T0* a1,T0* a2,T0* a3){
  5918. T0* R=NULL;
  5919. /*[IF*/
  5920. if((a2)==((void*)(NULL))){
  5921. R=a1;
  5922. }
  5923.  else if((a3)==((void*)(NULL))){
  5924. {T137*n=malloc(sizeof(*n));
  5925. *n=M137;
  5926. r137make(n,a1,a2);
  5927. R=(T0*)n;
  5928. }
  5929. }
  5930.  else if((r136count(((T136*)a3)))==(1)){
  5931. {T139*n=malloc(sizeof(*n));
  5932. *n=M139;
  5933. r139make(n,a1,a2,a3);
  5934. R=(T0*)n;
  5935. }
  5936. }
  5937. else{
  5938. {T140*n=malloc(sizeof(*n));
  5939. *n=M140;
  5940. r140make(n,a1,a2,a3);
  5941. R=(T0*)n;
  5942. }
  5943. }
  5944. /*FI]*/
  5945. return R;
  5946. }
  5947. /*No:EIFFEL_PARSER.nb_warnings*/
  5948. /*No:EIFFEL_PARSER.fz_redefine*/
  5949. T0*oBC66tmp_feature=NULL;
  5950. /*No:EIFFEL_PARSER.fz_retry*/
  5951. /*No:EIFFEL_PARSER.us_xor*/
  5952.  
  5953.  
  5954. T6 r66a_e0(T66* C){
  5955. T6 R=0;
  5956. R=r66a_e1(C);
  5957. r66a_r1(C,(C)->_last_expression/*97*/);
  5958. return R;
  5959. }
  5960.  
  5961.  
  5962. T0* r66get_comments(T66* C){
  5963. T0* R=NULL;
  5964. R=(C)->_last_comments/*25*/;
  5965. C->_last_comments=NULL;
  5966. return R;
  5967. }
  5968.  
  5969.  
  5970. T6 r66a_e1(T66* C){
  5971. T6 R=0;
  5972. R=r66a_e2(C);
  5973. r66a_r2(C,(C)->_last_expression/*97*/);
  5974. return R;
  5975. }
  5976. /*No:EIFFEL_PARSER.us_not*/
  5977.  
  5978.  
  5979. T6 r66a_e2(T66* C){
  5980. T6 R=0;
  5981. R=r66a_e3(C);
  5982. r66a_r3(C,(C)->_last_expression/*97*/);
  5983. return R;
  5984. }
  5985.  
  5986.  
  5987. T6 r66a_then_part(T66* C,T0* a1){
  5988. T6 R=0;
  5989. T0* _expression=NULL;
  5990. /*[IF*/
  5991. if(r66a_expression(C)){
  5992. R=1;
  5993. _expression=X53add_comment((C)->_last_expression/*97*/,r66get_comments(C));
  5994. /*[IF*/
  5995. if(!(r66a_keyword(C,((T0*)ms12_1764)))){
  5996. /*[IRF3.6wcp*/{T66* C1=C;
  5997. T0* b1=((T0*)ms66_14027);
  5998. r66warning(r66current_position(C1),b1);
  5999. }/*]*/
  6000. }
  6001. /*FI]*/
  6002. r210add_if_then(((T210*)a1),_expression,r66a_compound1(C));
  6003. }
  6004. /*FI]*/
  6005. return R;
  6006. }
  6007.  
  6008.  
  6009. T6 r66a_e3(T66* C){
  6010. T6 R=0;
  6011. R=r66a_e4(C);
  6012. r66a_r4(C,(C)->_last_expression/*97*/);
  6013. return R;
  6014. }
  6015. /*No:EIFFEL_PARSER.us_array*/
  6016.  
  6017.  
  6018. T6 r66a_e4(T66* C){
  6019. T6 R=0;
  6020. R=r66a_e5(C);
  6021. r66a_r5(C,(C)->_last_expression/*97*/);
  6022. return R;
  6023. }
  6024.  
  6025.  
  6026. T6 r66a_e5(T66* C){
  6027. T6 R=0;
  6028. R=r66a_e6(C);
  6029. r66a_r6(C,(C)->_last_expression/*97*/);
  6030. return R;
  6031. }
  6032.  
  6033.  
  6034. T6 r66a_e6(T66* C){
  6035. T6 R=0;
  6036. R=r66a_e7(C);
  6037. r66a_r7(C,(C)->_last_expression/*97*/);
  6038. return R;
  6039. }
  6040.  
  6041.  
  6042. void r66go_back_at(T66* C,T2 a1,T2 a2){
  6043. C->_line=a1;
  6044. C->_column=a2;
  6045. C->_current_line=r71item((C)->_line/*16*/);
  6046. /*[IF*/
  6047. if(((C)->_column/*12*/)==((((T7*)((C)->_current_line/*20*/))->_count/*4*/)+(1))){
  6048. C->_cc='\n';
  6049. }
  6050.  else if(((C)->_column/*12*/)==(0)){
  6051. C->_cc='\0';
  6052. }
  6053. else{
  6054. C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
  6055. }
  6056. /*FI]*/
  6057. }
  6058.  
  6059.  
  6060. T6 r66a_e7(T66* C){
  6061. T6 R=0;
  6062. R=r66a_e8(C);
  6063. r66a_r8(C,(C)->_last_expression/*97*/);
  6064. return R;
  6065. }
  6066. /*No:EIFFEL_PARSER.last_manifest_string*/
  6067.  
  6068.  
  6069. T6 r66a_e8(T66* C){
  6070. T6 R=0;
  6071. T0* _sp=NULL;
  6072. T0* _prefix_freeop=NULL;
  6073. T0* _op=NULL;
  6074. T0* _prefix_moins=NULL;
  6075. T0* _prefix_plus=NULL;
  6076. T0* _prefix_not=NULL;
  6077. /*[IF*/
  6078. if(r66a_keyword(C,((T0*)ms13_1029))){
  6079. {T69*n=malloc(sizeof(*n));
  6080. *n=M69;
  6081. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6082. _sp=(T0*)n;
  6083. }
  6084. /*[IF*/
  6085. if(r66a_e8(C)){
  6086. {T132*n=malloc(sizeof(*n));
  6087. *n=M132;
  6088. r132make(n,_sp,(C)->_last_expression/*97*/);
  6089. _prefix_not=(T0*)n;
  6090. }
  6091. C->_last_expression=_prefix_not;
  6092. R=1;
  6093. }
  6094. else{
  6095. r66err_exp(_sp,((T0*)ms13_1029));
  6096. }
  6097. /*FI]*/
  6098. }
  6099.  else if(r66skip1(C,'\53')){
  6100. {T69*n=malloc(sizeof(*n));
  6101. *n=M69;
  6102. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6103. _sp=(T0*)n;
  6104. }
  6105. /*[IF*/
  6106. if(r66a_e8(C)){
  6107. {T131*n=malloc(sizeof(*n));
  6108. *n=M131;
  6109. r131make(n,_sp,(C)->_last_expression/*97*/);
  6110. _prefix_plus=(T0*)n;
  6111. }
  6112. C->_last_expression=_prefix_plus;
  6113. R=1;
  6114. }
  6115. else{
  6116. r66err_exp(_sp,((T0*)ms66_7660));
  6117. }
  6118. /*FI]*/
  6119. }
  6120.  else if(r66skip1(C,'\55')){
  6121. {T69*n=malloc(sizeof(*n));
  6122. *n=M69;
  6123. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6124. _sp=(T0*)n;
  6125. }
  6126. /*[IF*/
  6127. if(r66a_e8(C)){
  6128. {T130*n=malloc(sizeof(*n));
  6129. *n=M130;
  6130. r130make(n,_sp,(C)->_last_expression/*97*/);
  6131. _prefix_moins=(T0*)n;
  6132. }
  6133. C->_last_expression=_prefix_moins;
  6134. R=1;
  6135. }
  6136. else{
  6137. r66err_exp(_sp,((T0*)ms66_7680));
  6138. }
  6139. /*FI]*/
  6140. }
  6141.  else if(r66a_free_operator(C)){
  6142. _op=r96to_prefix_name((T96*)(oBC66tmp_name));
  6143. /*[IF*/
  6144. if(r66a_e8(C)){
  6145. {T126*n=malloc(sizeof(*n));
  6146. *n=M126;
  6147. r126make(n,(C)->_last_expression/*97*/,_op);
  6148. _prefix_freeop=(T0*)n;
  6149. }
  6150. C->_last_expression=_prefix_freeop;
  6151. R=1;
  6152. }
  6153. else{
  6154. /*[IRF3.6append*/{T0* b1=((T0*)ms66_37044);
  6155. r7append((T7*)(oBC67explanation),b1);
  6156. }/*]*/
  6157. r66err_exp((((T129*)_op))->_start_position/*8*/,(((T129*)_op))->_to_string/*4*/);
  6158. }
  6159. /*FI]*/
  6160. }
  6161. else{
  6162. R=r66a_e9(C);
  6163. }
  6164. /*FI]*/
  6165. return R;
  6166. }
  6167.  
  6168.  
  6169. T6 r66a_e9(T66* C){
  6170. T6 R=0;
  6171. T0* _e_old=NULL;
  6172. /*[IF*/
  6173. if(r66a_keyword(C,((T0*)ms12_975))){
  6174. /*[IF*/
  6175. if(!((C)->_in_ensure/*41*/)){
  6176. r66error(r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms66_146727));
  6177. }
  6178. /*FI]*/
  6179. /*[IF*/
  6180. if(r66a_e10(C)){
  6181. {T133*n=malloc(sizeof(*n));
  6182. *n=M133;
  6183. /*[IRF3.3make*/((((T133*)(n)))->_expression)=((C)->_last_expression/*97*/);
  6184. /*]*/
  6185. _e_old=(T0*)n;
  6186. }
  6187. C->_last_expression=_e_old;
  6188. R=1;
  6189. }
  6190. else{
  6191. r66fcp(C,((T0*)ms66_64096));
  6192. }
  6193. /*FI]*/
  6194. }
  6195. else{
  6196. R=r66a_e10(C);
  6197. }
  6198. /*FI]*/
  6199. return R;
  6200. }
  6201.  
  6202.  
  6203. T6 r66a_when_part(T66* C,T0* a1){
  6204. T6 R=0;
  6205. T0* _constant=NULL;
  6206. T0* _e_when=NULL;
  6207. T2 _state=0;
  6208. /*[IF*/
  6209. if(r66a_keyword(C,((T0*)ms12_1776))){
  6210. R=1;
  6211. {T221*n=malloc(sizeof(*n));
  6212. *n=M221;
  6213. r221make(n,r66pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),r66get_comments(C));
  6214. _e_when=(T0*)n;
  6215. }
  6216. while (!((_state)>(3))) {
  6217. {int z1=_state;
  6218.  
  6219. if((0==z1)){
  6220. /*[IF*/
  6221. if(r66a_constant(C)){
  6222. _constant=(C)->_last_expression/*97*/;
  6223. _state=1;
  6224. }
  6225.  else if(r66a_keyword(C,((T0*)ms12_1764))){
  6226. /*[IF*/
  6227. if((_constant)!=((void*)(NULL))){
  6228. r221add_value(((T221*)_e_when),_constant);
  6229. }
  6230. /*FI]*/
  6231. /*[IRF3.3set_compound*/((((T221*)(((T221*)_e_when))))->_compound)=(r66a_compound1(C));
  6232. /*]*/
  6233. r220add_when(((T220*)a1),_e_when);
  6234. _state=4;
  6235. }
  6236.  else if(((C)->_cc/*24*/)==('\54')){
  6237. /*[IRF3.6wcp*/{T66* C1=C;
  6238. T0* b1=((T0*)ms66_48195);
  6239. r66warning(r66current_position(C1),b1);
  6240. }/*]*/
  6241. C->_ok=r66skip1(C,'\54');
  6242. }
  6243. else{
  6244. r66fcp(C,((T0*)ms66_22423));
  6245. _state=4;
  6246. }
  6247. /*FI]*/
  6248. }
  6249.  else 
  6250. if((1==z1)){
  6251. /*[IF*/
  6252. if(r66a_keyword(C,((T0*)ms12_1764))){
  6253. /*[IF*/
  6254. if((_constant)!=((void*)(NULL))){
  6255. r221add_value(((T221*)_e_when),_constant);
  6256. }
  6257. /*FI]*/
  6258. /*[IRF3.3set_compound*/((((T221*)(((T221*)_e_when))))->_compound)=(r66a_compound1(C));
  6259. /*]*/
  6260. r220add_when(((T220*)a1),_e_when);
  6261. _state=4;
  6262. }
  6263.  else if(r66skip2(C,'\56','\56')){
  6264. _state=2;
  6265. }
  6266.  else if(r66skip1(C,'\54')){
  6267. r221add_value(((T221*)_e_when),_constant);
  6268. _constant=NULL;
  6269. _state=0;
  6270. }
  6271. else{
  6272. r66fcp(C,((T0*)ms66_22423));
  6273. _state=4;
  6274. }
  6275. /*FI]*/
  6276. }
  6277.  else 
  6278. if((2==z1)){
  6279. /*[IF*/
  6280. if(r66a_constant(C)){
  6281. r221add_slice(((T221*)_e_when),_constant,(C)->_last_expression/*97*/);
  6282. _constant=NULL;
  6283. _state=3;
  6284. }
  6285. else{
  6286. r66fcp(C,((T0*)ms66_22423));
  6287. _state=4;
  6288. }
  6289. /*FI]*/
  6290. }
  6291.  else{/*[IF*/
  6292. if(r66skip1(C,'\54')){
  6293. _state=0;
  6294. }
  6295.  else if(r66a_keyword(C,((T0*)ms12_1764))){
  6296. /*[IRF3.3set_compound*/((((T221*)(((T221*)_e_when))))->_compound)=(r66a_compound1(C));
  6297. /*]*/
  6298. r220add_when(((T220*)a1),_e_when);
  6299. _state=4;
  6300. }
  6301.  else if(r66a_constant(C)){
  6302. _constant=(C)->_last_expression/*97*/;
  6303. r66warning(r96start_position((T96*)(oBC66tmp_name)),((T0*)ms66_9410));
  6304. _state=1;
  6305. }
  6306. else{
  6307. r66fcp(C,((T0*)ms66_22423));
  6308. _state=4;
  6309. }
  6310. /*FI]*/
  6311. }}
  6312. }
  6313. }
  6314. /*FI]*/
  6315. return R;
  6316. }
  6317.  
  6318.  
  6319. T6 r66a_argument(T66* C){
  6320. T6 R=0;
  6321. T2 _rank=0;
  6322. /*[IF*/
  6323. if(((C)->_arguments/*49*/)!=((void*)(NULL))){
  6324. _rank=r175rank_of((T175*)((C)->_arguments/*49*/),r96to_string((T96*)(oBC66tmp_name)));
  6325. /*[IF*/
  6326. if((_rank)>(0)){
  6327. C->_last_expression=r96to_argument_name2((T96*)(oBC66tmp_name),(C)->_arguments/*49*/,_rank);
  6328. R=1;
  6329. }
  6330. /*FI]*/
  6331. }
  6332. /*FI]*/
  6333. return R;
  6334. }
  6335. /*No:EIFFEL_PARSER.us_character*/
  6336. /*No:EIFFEL_PARSER.end_of_text*/
  6337.  
  6338.  
  6339. void r66a_r1(T66* C,T0* a1){
  6340. T0* _sp=NULL;
  6341. T0* _infix_implies=NULL;
  6342. /*[IF*/
  6343. if(r66a_keyword(C,((T0*)ms13_9513))){
  6344. {T69*n=malloc(sizeof(*n));
  6345. *n=M69;
  6346. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6347. _sp=(T0*)n;
  6348. }
  6349. /*[IF*/
  6350. if(r66a_e1(C)){
  6351. {T100*n=malloc(sizeof(*n));
  6352. *n=M100;
  6353. r100make(n,a1,_sp,(C)->_last_expression/*97*/);
  6354. _infix_implies=(T0*)n;
  6355. }
  6356. r66a_r1(C,_infix_implies);
  6357. }
  6358. else{
  6359. r66error(_sp,((T0*)ms66_78732));
  6360. }
  6361. /*FI]*/
  6362. }
  6363. else{
  6364. C->_last_expression=a1;
  6365. }
  6366. /*FI]*/
  6367. }
  6368.  
  6369.  
  6370. void r66a_r2(T66* C,T0* a1){
  6371. T0* _sp=NULL;
  6372. T0* _infix_xor=NULL;
  6373. T0* _infix_or=NULL;
  6374. T0* _infix_or_else=NULL;
  6375. /*[IF*/
  6376. if(r66a_keyword(C,((T0*)ms13_456))){
  6377. {T69*n=malloc(sizeof(*n));
  6378. *n=M69;
  6379. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6380. _sp=(T0*)n;
  6381. }
  6382. /*[IF*/
  6383. if(r66a_keyword(C,((T0*)ms12_1740))){
  6384. /*[IF*/
  6385. if(r66a_e2(C)){
  6386. {T108*n=malloc(sizeof(*n));
  6387. *n=M108;
  6388. r108make(n,a1,_sp,(C)->_last_expression/*97*/);
  6389. _infix_or_else=(T0*)n;
  6390. }
  6391. r66a_r2(C,_infix_or_else);
  6392. }
  6393. else{
  6394. r66err_exp(_sp,((T0*)ms13_8316));
  6395. }
  6396. /*FI]*/
  6397. }
  6398. else{
  6399. /*[IF*/
  6400. if(r66a_e2(C)){
  6401. {T107*n=malloc(sizeof(*n));
  6402. *n=M107;
  6403. r107make(n,a1,_sp,(C)->_last_expression/*97*/);
  6404. _infix_or=(T0*)n;
  6405. }
  6406. r66a_r2(C,_infix_or);
  6407. }
  6408. else{
  6409. r66err_exp(_sp,((T0*)ms13_456));
  6410. }
  6411. /*FI]*/
  6412. }
  6413. /*FI]*/
  6414. }
  6415.  else if(r66a_keyword(C,((T0*)ms13_1053a))){
  6416. {T69*n=malloc(sizeof(*n));
  6417. *n=M69;
  6418. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6419. _sp=(T0*)n;
  6420. }
  6421. /*[IF*/
  6422. if(r66a_e2(C)){
  6423. {T106*n=malloc(sizeof(*n));
  6424. *n=M106;
  6425. r106make(n,a1,_sp,(C)->_last_expression/*97*/);
  6426. _infix_xor=(T0*)n;
  6427. }
  6428. r66a_r2(C,_infix_xor);
  6429. }
  6430. else{
  6431. r66err_exp(_sp,((T0*)ms13_1053a));
  6432. }
  6433. /*FI]*/
  6434. }
  6435. else{
  6436. C->_last_expression=a1;
  6437. }
  6438. /*FI]*/
  6439. }
  6440.  
  6441.  
  6442. void r66a_r3(T66* C,T0* a1){
  6443. T0* _sp=NULL;
  6444. T0* _infix_and=NULL;
  6445. T0* _infix_and_then=NULL;
  6446. /*[IF*/
  6447. if(r66a_keyword(C,((T0*)ms13_939))){
  6448. {T69*n=malloc(sizeof(*n));
  6449. *n=M69;
  6450. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6451. _sp=(T0*)n;
  6452. }
  6453. /*[IF*/
  6454. if(r66a_keyword(C,((T0*)ms12_1764))){
  6455. /*[IF*/
  6456. if(r66a_e3(C)){
  6457. {T110*n=malloc(sizeof(*n));
  6458. *n=M110;
  6459. r110make(n,a1,_sp,(C)->_last_expression/*97*/);
  6460. _infix_and_then=(T0*)n;
  6461. }
  6462. r66a_r3(C,_infix_and_then);
  6463. }
  6464. else{
  6465. r66err_exp(_sp,((T0*)ms13_10800));
  6466. }
  6467. /*FI]*/
  6468. }
  6469. else{
  6470. /*[IF*/
  6471. if(r66a_e3(C)){
  6472. {T109*n=malloc(sizeof(*n));
  6473. *n=M109;
  6474. r109make(n,a1,_sp,(C)->_last_expression/*97*/);
  6475. _infix_and=(T0*)n;
  6476. }
  6477. r66a_r3(C,_infix_and);
  6478. }
  6479. else{
  6480. r66err_exp(_sp,((T0*)ms13_939));
  6481. }
  6482. /*FI]*/
  6483. }
  6484. /*FI]*/
  6485. }
  6486. else{
  6487. C->_last_expression=a1;
  6488. }
  6489. /*FI]*/
  6490. }
  6491.  
  6492.  
  6493. void r66a_r4(T66* C,T0* a1){
  6494. T0* _sp=NULL;
  6495. T0* _infix_gt=NULL;
  6496. T0* _infix_ge=NULL;
  6497. T0* _infix_lt=NULL;
  6498. T0* _infix_le=NULL;
  6499. T0* _infix_neq=NULL;
  6500. T0* _infix_eq=NULL;
  6501. /*[IF*/
  6502. if(r66skip1(C,'\75')){
  6503. {T69*n=malloc(sizeof(*n));
  6504. *n=M69;
  6505. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6506. _sp=(T0*)n;
  6507. }
  6508. /*[IF*/
  6509. if(r66a_e4(C)){
  6510. {T117*n=malloc(sizeof(*n));
  6511. *n=M117;
  6512. r117make(n,a1,_sp,(C)->_last_expression/*97*/);
  6513. _infix_eq=(T0*)n;
  6514. }
  6515. r66a_r4(C,_infix_eq);
  6516. }
  6517. else{
  6518. r66err_exp(_sp,((T0*)ms13_62));
  6519. }
  6520. /*FI]*/
  6521. }
  6522.  else if(r66skip2(C,'\57','\75')){
  6523. {T69*n=malloc(sizeof(*n));
  6524. *n=M69;
  6525. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6526. _sp=(T0*)n;
  6527. }
  6528. /*[IF*/
  6529. if(r66a_e4(C)){
  6530. {T115*n=malloc(sizeof(*n));
  6531. *n=M115;
  6532. r115make(n,a1,_sp,(C)->_last_expression/*97*/);
  6533. _infix_neq=(T0*)n;
  6534. }
  6535. r66a_r4(C,_infix_neq);
  6536. }
  6537. else{
  6538. r66err_exp(_sp,((T0*)ms13_222));
  6539. }
  6540. /*FI]*/
  6541. }
  6542.  else if(r66skip2(C,'\74','\75')){
  6543. {T69*n=malloc(sizeof(*n));
  6544. *n=M69;
  6545. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6546. _sp=(T0*)n;
  6547. }
  6548. /*[IF*/
  6549. if(r66a_e4(C)){
  6550. {T114*n=malloc(sizeof(*n));
  6551. *n=M114;
  6552. r114make(n,a1,_sp,(C)->_last_expression/*97*/);
  6553. _infix_le=(T0*)n;
  6554. }
  6555. r66a_r4(C,_infix_le);
  6556. }
  6557. else{
  6558. r66err_exp(_sp,((T0*)ms13_248));
  6559. }
  6560. /*FI]*/
  6561. }
  6562.  else if(r66skip2(C,'\76','\75')){
  6563. {T69*n=malloc(sizeof(*n));
  6564. *n=M69;
  6565. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6566. _sp=(T0*)n;
  6567. }
  6568. /*[IF*/
  6569. if(r66a_e4(C)){
  6570. {T112*n=malloc(sizeof(*n));
  6571. *n=M112;
  6572. r112make(n,a1,_sp,(C)->_last_expression/*97*/);
  6573. _infix_ge=(T0*)n;
  6574. }
  6575. r66a_r4(C,_infix_ge);
  6576. }
  6577. else{
  6578. r66err_exp(_sp,((T0*)ms13_252));
  6579. }
  6580. /*FI]*/
  6581. }
  6582.  else if(r66skip1(C,'\74')){
  6583. {T69*n=malloc(sizeof(*n));
  6584. *n=M69;
  6585. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6586. _sp=(T0*)n;
  6587. }
  6588. /*[IF*/
  6589. if(r66a_e4(C)){
  6590. {T113*n=malloc(sizeof(*n));
  6591. *n=M113;
  6592. r113make(n,a1,_sp,(C)->_last_expression/*97*/);
  6593. _infix_lt=(T0*)n;
  6594. }
  6595. r66a_r4(C,_infix_lt);
  6596. }
  6597. else{
  6598. r66err_exp(_sp,((T0*)ms13_61));
  6599. }
  6600. /*FI]*/
  6601. }
  6602.  else if(r66skip1unless2(C,'\76','\76')){
  6603. {T69*n=malloc(sizeof(*n));
  6604. *n=M69;
  6605. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6606. _sp=(T0*)n;
  6607. }
  6608. /*[IF*/
  6609. if(r66a_e4(C)){
  6610. {T111*n=malloc(sizeof(*n));
  6611. *n=M111;
  6612. r111make(n,a1,_sp,(C)->_last_expression/*97*/);
  6613. _infix_gt=(T0*)n;
  6614. }
  6615. r66a_r4(C,_infix_gt);
  6616. }
  6617. else{
  6618. r66err_exp(_sp,((T0*)ms13_63));
  6619. }
  6620. /*FI]*/
  6621. }
  6622. else{
  6623. C->_last_expression=a1;
  6624. }
  6625. /*FI]*/
  6626. }
  6627.  
  6628.  
  6629. void r66a_r5(T66* C,T0* a1){
  6630. T0* _sp=NULL;
  6631. T0* _infix_minus=NULL;
  6632. T0* _infix_plus=NULL;
  6633. /*[IF*/
  6634. if(r66skip1(C,'\53')){
  6635. {T69*n=malloc(sizeof(*n));
  6636. *n=M69;
  6637. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6638. _sp=(T0*)n;
  6639. }
  6640. /*[IF*/
  6641. if(r66a_e5(C)){
  6642. {T119*n=malloc(sizeof(*n));
  6643. *n=M119;
  6644. r119make(n,a1,_sp,(C)->_last_expression/*97*/);
  6645. _infix_plus=(T0*)n;
  6646. }
  6647. r66a_r5(C,_infix_plus);
  6648. }
  6649. else{
  6650. r66err_exp(_sp,((T0*)ms13_44));
  6651. }
  6652. /*FI]*/
  6653. }
  6654.  else if(r66skip1(C,'\55')){
  6655. {T69*n=malloc(sizeof(*n));
  6656. *n=M69;
  6657. r69make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6658. _sp=(T0*)n;
  6659. }
  6660. /*[IF*/
  6661. if(r66a_e5(C)){
  6662. {T118*n=malloc(sizeof(*n));
  6663. *n=M118;
  6664. r118make(n,a1,_sp,(C)->_last_expression/*97*/);
  6665. _infix_minus=(T0*)n;
  6666. }
  6667. r66a_r5(C,_infix_minus);
  6668. }
  6669. else{
  6670. r66err_exp(_sp,((T0*)ms13_46));
  6671. }
  6672. /*FI]*/
  6673. }
  6674. else{
  6675. C->_last_expression=a1;
  6676. }
  6677. /*FI]*/
  6678. }
  6679.  
  6680.